Gamebaby Rock Sun的博客

曾经拥有的,不要忘记, 已经得到的,更要珍惜, 属于自己的,不要放弃, 已经失去的,留着回忆, 想要得到的,必须努力, 但最重要的,是好好爱惜自己!
私信 关注
GamebabyRockSun_QQ
码龄7年

曾经拥有的,不要忘记, 已经得到的,更要珍惜, 属于自己的,不要放弃, 已经失去的,留着回忆, 想要得到的,必须努力, 但最重要的,是好好爱惜自己!

  • 187,481
    被访问量
  • 114
    原创文章
  • 38,419
    作者排名
  • 451
    粉丝数量
  • 于 2014-03-11 加入CSDN
获得成就
  • 获得195次点赞
  • 内容获得280次评论
  • 获得305次收藏
荣誉勋章
兴趣领域
  • #数据库管理
    #数据仓库#数据库架构#数据库开发#etl工程师
  • #算法
    #迁移学习#排序算法#回归#mxnet#PyTorch#caffe#TensorFlow#CV(computer vision)#推荐算法#分类#NLP#scikit-learn#集成学习#聚类
  • #大数据
    #hadoop#storm#spark#数据仓库#ETL
TA的专栏
  • NodeJs全栈开发
    1篇
  • 游戏引擎编程
    27篇
  • HLSL Shader
    5篇
  • Unity3D
    1篇
  • DirectX11(D3D11)
    9篇
  • DirectX12(D3D12)
    26篇
  • DirectXRaytracing(DXR)
    5篇
  • 实时光线追踪
    5篇
  • 前端开发(H5\CSS3JS)
    7篇
  • Git
    1篇
  • 数学
  • 线性代数
    8篇
  • 微积分
  • 云计算
    4篇
  • Docker
    6篇
  • VC/VC++
    37篇
  • Windows编程
    32篇
  • OLEDB编程
    12篇
  • COM编程
    5篇
  • Windows管理
    3篇
  • 汇编相关
    4篇
  • 网络编程
    7篇
  • Windows网络编程
    8篇
  • IOCP编程
    7篇
  • 编译原理
    8篇
  • SQL Server技巧
    1篇
  • XML SQL Server
    8篇
  • 并行计算
    14篇
  • 我的摄影相册
    1篇
  • 管理
    1篇
  • 大数据
    1篇
  • 操作系统
    2篇
  • Tensorflow
    1篇
  • 其他
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

nodejs + express + formidable 实现网页文件上传

1、安装 express 和 formidable新建一个目录‘UploadFiles’,然后打开命令行工具,进入该目录,逐条执行如下命令:npm init npm install -s express formidablenpm init 运行情况如下,选型全部默认,直接回车到最后一步,过程不解释安装两个第三方组件情况如下:2、创建app.js在‘uploadfiles’目录中创建app.js文件,并添加如下代码:var express = require('express');v
原创
35阅读
4评论
0点赞
发布博客于 1 月前

循环体并行优化(二)——多维循环迭代空间的仿射变换及循环上下界不等式的矩阵表示法

(重新整理于2020年冬。)  上回书说到(忘了我不是说书的了,习惯性口语,见谅!),我们可以通过一个简单的仿射变换将一维的“不连续”循环下标空间变换到一个“连续”的下标空间中。这次,我们则继续来看看如何将一个高维的“不连续”循环下标变换到“连续”的循环下标空间中。如果非要为这种变换加上一个理由的话,我认为那就是不要在我们的整数向量空间中留下太多的“洞”或者“空泡”。因为对于一个增量不为1的循环变量来说(包括绝对值大于1的负增量也就是递减量),跳过的坐标值形成的那些点就不能在这个迭代空间中,因而形成了这个
原创
78阅读
0评论
1点赞
发布博客于 2 月前

循环体并行优化(一)——循环迭代空间的仿射变换

循环体并行优化(一)——循环迭代空间的仿射变换(重新整理于2020年冬。)  最近痴迷于编译原理而不能自拔,这么多年来一直是会在某一段时间痴迷于一件事物,性格使然,无法自控。随着钻研深入,多年前的一个模糊的想法——搞一个自带针对多处理器系统并行优化的编译器,慢慢的发现这个想法并不是遥不可及了。在看了编译原理第二版的并行性和局部性优化章节的内容后,眼前突然豁然开朗。  在多核处理器横行的今天,我的手机上都有八个可以同时执行任务的处理器的年代,很难想象不用并行计算,要如何去榨取这些硬件的“剩余价值”。甚至
原创
122阅读
0评论
1点赞
发布博客于 2 月前

DirectX12(D3D12)基础教程(十六)——实现渲染线程池:3个内核同步对象实现渲染线程池/大规模线程池

  使用1个信标量对象 + 1个CPU屏障 + 1个事件对象共3个内核同步对象实现渲染线程池/大规模线程池管理。
原创
288阅读
2评论
2点赞
发布博客于 3 月前

DirectX 12 Ultimate(Feature Level 12_2)新特性一览

原创
214阅读
0评论
1点赞
发布博客于 3 月前

H5、CSS3、JS学习笔记(六)——JS+Canvas生成随机阴影图片

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>A Tribute to Manfred Mohr - Simplex Noise</title> <style> body, html { margin: 0;
原创
58阅读
0评论
0点赞
发布博客于 5 月前

H5、CSS3、JS学习笔记(五)——CSS_3D动画棋盘

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>CodePen - CSS 3D Chess Board Model with Pieces ♟️</title> <style> /* Best viewed in Full mo
原创
65阅读
0评论
0点赞
发布博客于 5 月前

H5、CSS3、JS学习笔记(四)——按钮边框CSS动画

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>CodePen - Button - border animation</title> <style> body { width: 100%;
原创
93阅读
0评论
0点赞
发布博客于 5 月前

H5、CSS3、JS学习笔记(三)——不规则多边形图片动画

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>polygon animation</title> <style> body { font-family: "Poppins", sans-serif;
原创
110阅读
0评论
0点赞
发布博客于 5 月前

H5、CSS3、JS学习笔记(二)——下雨的窗户

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>CodePen - Rainy Day</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>
原创
46阅读
0评论
0点赞
发布博客于 5 月前

H5、CSS3、JS学习笔记(一)——CSS画一只小绵羊

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>CSS Sheep</title> <style> :root { --fluff-size: 70px; --ear-width: 15px;
原创
64阅读
0评论
0点赞
发布博客于 5 月前

说实话,iPad还是挺好用的

 
发布Blink于 7 月前

使用gitea通过码云完整克隆github源码库到本地备份(Windows Docker环境)

# 使用gitea通过gitee完整克隆github源码库到本地备份使用(Windows Docker环境) #在搭建Gitlab私服的过程中,与老同事进行了交流,一个老同事又向我推荐了gitea,这个东东最大的好处就是支持从远端的github上将库完整的拽到本地,以便快速访问,只是碍于github在国内访问糟糕的网速,所以真正需要备份完整github库还需要从gitee上绕一圈,下面我就将在Windows Docker环境中搭建的过程分享给大家。
原创
840阅读
0评论
0点赞
发布博客于 8 月前

Docker Desktop For Windows 环境下使用 Docker Gitlab + Docker PlantUml搭建私有Github环境实战

文章目录1、前言2、搜索和下载Plantuml3、下载PlantUML镜像4、观察分析Plantuml镜像结构:5、创建PlantUml的Docker卷:6、运行PlantUml容器7、搭建Gitlab8、在Gitlab中集成PlantUml1、前言  这两天在继续学习使用Markdown绘图的过程中,无意中接触到了一个在线的UML工具:PlantUML。PlantUML是一个用来绘制UML图的Java类库。支持的UML图包括:时序图、用例图、类图、组件图、活动图等。它最大的优势就是通过解析纯文本化的脚
原创
324阅读
0评论
0点赞
发布博客于 8 月前

矩阵可逆与行列式关系的一个直观推导

文章目录一、前言二、矩阵行变换得到上三角阵接着用同样的方法,想办法继续消去第三行中第二列的元素,使其为0,也就是继续对第三行先乘以第二行第二列a11∗a22−a21∗a12a_{11} * a_{22} - a_{21} * a_{12}a11​∗a22​−a21​∗a12​之后再减去第三行乘以第三行第二列的元素a11∗a32−a31∗a12a_{11} * a_{32} - a_{31} * a_{12}a11​∗a32​−a31​∗a12​,过程如下:$$\\\Rightarrow \begin
原创
934阅读
0评论
0点赞
发布博客于 8 月前

在Windows Docker Desktop中搭建Gitlab

  近来因工作原因,以及个人学习研究的需要,本人又重新祭出了docker神器,尝试着使用docker容器的方法在自己的电脑上搭建一套开发环境出来。因为我的开发环境都在windows下,所以我就在docker for windows desktop版中来搭建整套环境。当然好多人都习惯在虚拟机中在跑linux来开发、调试等等,但我更倾向于使用docker,至少我认为它轻量、方便、好用、灵活,部署快速。  其中Gitlab的搭建就是一个让我折腾了好久的难点。Gitlab的几次搭建都以失败告终,当然不是说gitl
原创
474阅读
0评论
0点赞
发布博客于 8 月前

常用的Docker镜像

常用的Docker镜像1、基础镜像获取2、常用的Docker镜像列表3、manifest for [xxxxx]:[ttttt] not found错误解决  最近因工作以及自己搭建开发环境的需要,又一次撸起了docker这个神器,为了方便各位,并作为自己备忘,特将常用的docker镜像例举在这里,并分享给大家。同时总结了一下下载镜像时的一个小问题。1、基础镜像获取docker pull ubuntudocker pull centosdocker pull nginxdocker pull m
原创
444阅读
0评论
0点赞
发布博客于 8 月前

DirectX12(D3D12)基础教程(十四)——使用WIC、Computer Shader显示GIF动画纹理(下)

文章目录5、用DirectComputer完成GIF帧预处理5.1、Computer Shader中以数组方式访问纹理完成帧预处理5.2、Dispatch启动GIF帧绘制5、用DirectComputer完成GIF帧预处理  当看到这一小节的标题时,可能会有点蒙,为什么不把解析出来的帧直接当成纹理用?还需要“处理”什么?其实仔细想想这不是那么简单的。前面已经啰嗦了很多关于GIF以及帧的属性读取...
原创
688阅读
7评论
1点赞
发布博客于 1 年前

DirectX12(D3D12)基础教程(十四)——使用WIC、Computer Shader显示GIF动画纹理(中)

文章目录4、Direct Computer基础知识4.1、Direct Computer简介4.2、Direct Computer编程基本框架4.3、Computer Shader简介4.4、Computer Shader示例4.5、[numthreads(x, y, z)]语义文法详解4.6、通过Dispatch来批量发起GPU线程盒4.7、SV_GroupID、SV_DispatchThrea...
原创
416阅读
0评论
1点赞
发布博客于 1 年前

DirectX12(D3D12)基础教程(十四)——使用WIC、Computer Shader显示GIF动画纹理(上)

文章目录1、前言2、GIF文件简介3、使用WIC加载并解析GIF文件3.1、解析GIF全局背景色3.2、获取GIF的像素尺寸3.3、获取像素纵横比修正图片像素尺寸3.4、读取GIF帧和属性3.5、创建GIF纹理(画板)和帧纹理1、前言  在本系列教程开头的几章中,开初使用的纹理加载组件是WIC。后来在不断的编码过程中,通过慢慢的摸索学习我才发现之前可能一直有点误解WIC这个组件了。其实这个组件...
原创
710阅读
0评论
1点赞
发布博客于 1 年前

DirectX12(D3D12)基础教程(十三)——D2D、DWrite On D3D12与文字输出

1、 前言  在经过了前面一系列章节的“狂轰滥炸”式的学习之后,如果你现在跟进到了这里,那么请为自己点个赞先!  从本章开始,教程内容都会开始使用Markdown方式进行发布。一方面主要是为了练习Markdown编辑器的使用;另一方面Markdown目前已经成为比较流程的程序文档的编辑方式,我也来跟跟潮流,也是让大家习惯Markdown。还有就是Markdown的公式编辑比较简洁,后续的文章中...
原创
1750阅读
8评论
2点赞
发布博客于 1 年前

DirectX12(D3D12)基础教程(十二)——多线程+多显卡渲染及水彩画效果和标准简化版高斯模糊

1、前言上一章中最后一个水彩画效果是有问题的,这一讲我们特意修正这个错误。其实错误主要是因为真正的水彩画效果还需要一个后处理——高斯模糊。这一章主要的任务就是修正这个错误。同时这一章中将结合使用酷炫的多线程+多显卡渲染框架。为了能更好的理解本章教程示例,请各位最好已经仔细阅读了之前关于多线程渲染、多显卡渲染,以及Shader原始特效的章节文章及示例代码。在本章中,多线程渲染依旧是用来录...
原创
825阅读
2评论
1点赞
发布博客于 1 年前
AI 没让人类失业,搞 AI 的人先失业了
发布Blink于 1 年前
从《亮剑》看先进的管理(原创)
发布Blink于 1 年前

本人公告!

去年11月,本人知音好友不幸离世,为悼念,特停发博客三月,封笔为祭!预计将在春节后重新开始更新发布博客,感谢各位的关注,支持与鼓励!新的一年里预祝各位:阖家幸福!学业有成!事业成功!万事如意!...
原创
331阅读
2评论
1点赞
发布博客于 1 年前
VS2017编译WRL的Callback模版函数兼容性问题及解决方法
发布Blink于 2 年前
国产数据库岁末大盘点
发布Blink于 2 年前

DirectX12(D3D12)基础教程(十一)——几个“上古时代”的基于Pixel Shader的滤镜效果

1、前言记得大约是在10多年前,还在我努力的在学习着DirectX编程和3D引擎编程的方方面面知识的时候,初次接触到了当时很先进的Shader程序。当时搜集了很多资料,其中有一份就是讲解如何在PixelShader中实现类似PhotoShop中的一些滤镜功能。这次我就将这些陈年的有意思的Shader翻出来,用D3D12再次回炉一下,也做成教程,供大家学习Shader使用。本章的源代码已...
原创
767阅读
4评论
2点赞
发布博客于 2 年前
DirectX12(D3D12)基础教程(一)——基础教程
发布Blink于 2 年前
最好的 Windows C++ 编译器!
发布Blink于 2 年前
如何通过个人博客赚钱,走上财务自由?
发布Blink于 2 年前

DirectX12(D3D12)基础教程(十)——DXR(DirectX Raytracing)基础教程(下)

本文接上篇:DirectX12(D3D12)基础教程(十)——DXR(DirectX Raytracing)基础教程(上)目录5、C/C++代码中的其它准备工作6、DXR编程的基本框架7、枚举高性能适配器(显卡)和创建DXR设备7.1、枚举高性能适配器(显卡)7.2、判断系统DXR能力支持程度7.3、创建DXR设备和命令列表7.3.1、使用DXR Fallback兼...
原创
2303阅读
2评论
1点赞
发布博客于 2 年前

DirectX12(D3D12)基础教程(十)——DXR(DirectX Raytracing)基础教程(上)

目录1、前言2、准备工作3、Raytracing Shader3.1、Raytracing Shader整体框架介绍3.2、全局变量3.2.1、渲染目标Unordered Access 2D纹理变量3.2.2、三角形网格变量3.2.3、常量缓冲3.2.4、加速结构体变量3.3、基本光线追踪渲染过程框架3.4、光线发射函数(Ray Generatio...
原创
3311阅读
7评论
4点赞
发布博客于 2 年前

DirectX12(D3D12)基础教程(九)——多线程渲染BUG修正及MsgWaitForMultipleObjects函数详解

1、前言距离该系列文章上一篇文章已经有近半年多时间了,大家一定很好奇,为什么不继续下去了呢?说好的光追渲染去哪了呢?OK,请大家稍安勿躁,首先,光追渲染的示例正在紧张的编写当中,教程也在有条不紊的准备中,只是因为光追渲染目前在我的电脑上只能以Fallback形式运行,而征服Fallback库有点麻烦,需要些时间;其次,在这近半年多的时间里,除了忙于工作,我主要是在按计划学习Docker、G...
原创
434阅读
0评论
1点赞
发布博客于 2 年前

Windows Docker环境下驯服Docker版MySQL(2) ——挂载Host文件夹使数据存储本地化

前一篇文章中,我们解决了最新版的MySQL密码加密策略的问题。但是作为我们使用来说还有个更严重的问题就是,一旦这些容器里运行的镜像实例数据库被删除了,那么数据也就丢失了,因为这些数据是存在容器里面的,容器本质上还是个虚拟机,所以这不是我们真正想要的。当然我们可以很方便的通过如下的命令挂载本地的目录到Mysql镜像实例中,从而使数据库全部存储到主机本地:docker run -d -P -...
原创
191阅读
0评论
0点赞
发布博客于 2 年前

Windows Docker环境下驯服Docker版MySQL

目录1、运行一个MySQL实例:2、切入MySQL Docker命令行:3、查询并更改密码测略:(1)、修改加密规则(2)、修改密码(3)、刷新4、使用Windows主机中的工具连接:前一久在阅读了一些游戏跨平台开发的文章之后,发现使用Docker版的一些工具具有极大的方便性方面的优势,于是依然本着活到老学到老的程序员精神,就开始深入系统的开始学习了一下Docker...
原创
120阅读
0评论
0点赞
发布博客于 2 年前

2019_Book_RayTracingGems.pdf

《实时光线追踪渲染精粹》 渲染器使用两种方法来确定像素颜色:光栅化或光线追踪。 光栅化从一个特定像素开始,并询问“这个像素应该是什么颜色?”; 光线追踪则在视角和光源起作用,并询问:“光线在做什么?” 光线追踪的工作原理是:追踪光线在场景内的反射路径。光线每次反射的时候,它都会通过沉积早前对象的颜色来模拟现实生活中的光线,同时损失强度。对于特定类型的材料与效果而言,这种颜色的沉积使得清晰的反射,以及细微,逼真的颜色变化只能通过光线追踪来实现。 由于它模仿光线的真实行为,光线追踪同时擅长于产生区域阴影和环境遮挡。 相反,光栅化比光线追踪更快,成本更低,只是通过一些近似值计算照明。Unreal的光栅化技术在一枚高速GPU上以毫秒为单位提供4K分辨率帧。栅格化可以非常逼近照片级别真实感,同时不一定是物理上精确。另外对于大多数Unreal引擎的用户来说,速度的提升显得非常值得。 但对于更强调照片级真实感而非性能的真人实景电影和建筑可视化项目而言,光线追踪则显得更有优势。到目前为止,由于其巨大的计算需求,光线追踪仅在离线渲染中实施。使用光线追踪计算的场景可能需要几分钟到几个小时才能计算出一个帧,而电影动画的一秒需要24帧才能填充完成。
pdf
发布资源于 2 年前

C++11标准Flex及Bison文件,请结合WinFlex&Bison编译调试

目录1、前言2、标准C++词法文件(没有整理全,可以参考C的标准词法文件和C++的语法文件补充完整)3、标准C++语法文件(C++11规范,未整理完全,部分可优化,请自行参考语言规范整理)1、前言鉴于这段时间美国总统特朗普先生对以华为为代表的中国企业围堵的全面升级,本人将平时收集整理的标准C++语言的Flex和Bison元文件发出来,供大家参考。算是为反围堵尽自己的一份绵...
原创
398阅读
0评论
1点赞
发布博客于 2 年前

标准C语言Flex及Bison文件,请结合WinFlex&Bison编译调试

目录1、前言2、ANSI C 词法文件3、ANSI C 语法文件4、ISO C 标准语法文件(未整理,请参考前两个即可整理)1、前言鉴于这段时间美国总统特朗普先生对以华为为代表的中国企业围堵的全面升级,本人将平时收集整理的标准C语言的Flex和Bison元文件发出来,供大家参考。算是为反围堵尽自己的一份绵薄之力。请注意文件只是标识了标准的词法和语法,并没有语法分析和语...
原创
628阅读
0评论
1点赞
发布博客于 2 年前

DirectX12(D3D12)基础教程(八)——多显卡渲染基础、共享纹理、多GPU同步

目录1、前言2、为什么要多显卡渲染3、多显卡渲染核心原理3.1、多GPU拓扑模型及工作方式3.1.1、隐式多显卡系统3.1.2、显式多显卡系统3.1.3、链接的多显卡系统3.1.4、无链接的多显卡系统3.2、无链接显式多显卡系统的核心关键点——共享资源4、异构多显卡渲染框架示例——核显+独显方式4.1、创建多个设备对象4.2、创建交换链及渲染目标...
原创
3747阅读
7评论
7点赞
发布博客于 2 年前

DirectX12(D3D12)基础教程(七)——渲染到纹理、正交投影、UI渲染基础

目录 1、前言2、渲染到纹理3、调试支持4、正交投影5、UI渲染基础6、本章完整代码链接1、前言记得那是在差不多10多年前,我在工作中认识了一位好兄弟小杨。那时他刚毕业,跟我是同一所大学,算我的校友。彼时,我已工作快10年了,在当时那家不大的软件公司管VC++研发部。小杨加入了我的团队。他长了个圆脸,跟我一样戴副眼镜,话语不多,而且眼睛中并没有闪烁着我希望看到的...
原创
2175阅读
11评论
6点赞
发布博客于 2 年前

DirectX12(D3D12)基础教程(六)——多线程渲染

 目录 1、前言2、为什么要多线程渲染3、多线程3.1、什么是线程3.2、进程的主线程3.3、线程的入口函数3.4、创建线程3.5、CreateThread示例3.6、C/C++创建线程函数(VC版)3.7、_beginthreadex示例3.8、线程退出3.9、线程的暂停(挂起)和恢复3.10、线程的暂停式创建3.11、线程栈3...
原创
6320阅读
19评论
13点赞
发布博客于 2 年前

DirectX12(D3D12)基础教程(五)——理解和使用捆绑包,加载并使用DDS Cube Map

目录 1、前言2、加载DDS3、捆绑包(Bundles)4、完整代码1、前言这一次距上一篇教程又隔了有一段时间了,如果你看了之前的教程的话,马上就会想到悲催的我是不是又遇到了什么麻烦?应该说你能这样想那么恭喜你,你猜对了,这次搞得我人仰马翻的是DDS纹理。其实在我之前的教程中乐观的估计了WIC库,其实这个库根本就不能用来加载DDS型的纹理。当然教程到这里,我已经被纹理问...
原创
3936阅读
7评论
2点赞
发布博客于 3 年前

DirectX12(D3D12)基础教程(五)——理解和使用捆绑包,加载并使用DDS Cube Map 示例代码资源

DirectX12(D3D12)基础教程(五)——理解和使用捆绑包,加载并使用DDS Cube Map 示例代码中需要的资源: DDSTextureLoader12.cpp DDSTextureLoader12.h sky_cube.dds sphere.txt 金星.jpg
rar
发布资源于 3 年前

DirectX12(D3D12)基础教程(四)——初识DirectXMath库、使用独立堆创建常量缓冲、理解管线状态对象、理解围栏同步

目录 1、前言及本章内容提要2、初识DirectXMath库3、使用独立堆创建常量缓冲4、理解管线状态对象5、理解围栏同步6、完整代码1、前言及本章内容提要经过了之前3篇教程的跨度有点大的学习,我想大家现在应该对D3D12编程有了初步掌握。本篇教程算一个小小的过渡:一是巩固一下之前所学的知识;二是将还剩下的两个知识点讲解清楚;从而为后面进一步学习相对高(fu)级...
原创
3471阅读
3评论
6点赞
发布博客于 3 年前

DirectX12(D3D12)基础教程(三)——使用独立堆以“定位方式”创建资源、创建动态采样器、初步理解采取器类型

目录 1、前言2、显卡架构和存储管理3、创建默认堆并在其上以“定位方式”创建2D纹理4、动态采样器5、完整代码1、前言经过了第二部分教程的“折腾”之后,后面的教程我觉得应该顺畅多了。至少我现在可以一天时间就把教程示例代码调通,并且可以按照自己的想法自由的去发挥了。我很喜欢这种感觉,就像在打游戏中虐那些无脑的机器AI角色一样。经过前面两章的学习,我相信大家对D3D...
原创
3929阅读
16评论
7点赞
发布博客于 3 年前

DirectX12(D3D12)基础教程(二)——理解根签名、初识显存管理和加载纹理、理解资源屏障

目录 1、前言及本章内容提要2、初步理解和使用根签名3、使用WIC库加载图片4、D3D12内存管理导论——上传堆和默认堆4.1、D3D12中创建资源的三种方式4.1.1、提交方式(CreateCommittedResource)4.1.2、定位方式(CreatePlacedResource)4.1.3、保留方式(CreateReservedResource)...
原创
11509阅读
28评论
23点赞
发布博客于 3 年前

DirectX12(D3D12)基础教程(一)——基础教程

目录 1、前言2、调用D3D12的基本步骤和准备工作3、包含头文件和引用库文件4、定义待渲染3D数据结构5、定义变量6、创建窗口7、创建DXGI8、创建D3D2设备对象接口9、创建D3D2命令队列接口10、创建交换链11、创建RTV描述符堆和RTV描述符12、创建根签名对象接口13、编译Shader及创建渲染管线状态对象接口14、加载待渲...
原创
34662阅读
72评论
43点赞
发布博客于 3 年前

关于下载、编译及运行DirectX Raytracing Sample Code (DXR)若干小问题及解决方法

 伴随Nvidia公司全新一代RTX20XX系显卡的发布,微软公司也及时的更新了配套的DXR演示代码。下载地址:https://github.com/Microsoft/DirectX-Graphics-Samples/releases在下载页面中主要要下载如图红色箭头所指的几个包:  下载过程中因为Github链接加密的问题,普通的下载工具下载速度慢并且会中断,因此建议使用Githu...
原创
2120阅读
7评论
2点赞
发布博客于 3 年前

VS2017编译WRL的Callback模版函数兼容性问题及解决方法

近来一直在研究DXR的示例代码,并在其中看到例子中大量的使用了WRL的新模版类代替ATL的老三样的模版类,使用最多的就是COM智能指针Microsoft::WRL::ComPtr类。在聚合使用D3D的接口时,更是像下面这样大量应用该模版包装了D3D的接口:......Microsoft::WRL::ComPtr&lt;IDXGIFactory4&gt;               m_dx...
原创
1673阅读
6评论
1点赞
发布博客于 3 年前

光线追踪渲染(RayTracing Render)核心原理详解

...
原创
13230阅读
11评论
21点赞
发布博客于 3 年前

D3D11和D3D12多线程渲染框架的比较(五)

1.    多趟渲染与多线程渲染接下来让我们更进一步,再来设想一个更复杂的场景,还是之前那个一个线程(CPU线程)+命令列表(GPU线程)渲染一个正方体,另一个线程+命令列表渲染一个球体的例子,当然我们还要加入一个线程+命令队列渲染一个平面,而球体和正方体都放在这个平面上(看起来有点像素描,原谅我很懒没有配任何图像),只不过在这里我们加入了阴影效果(求此时你看懂这个问题时的
原创
1537阅读
6评论
6点赞
发布博客于 4 年前

D3D11和D3D12多线程渲染框架的比较(四)

1.    命令列表及命令的原生并行性至此如果你还没有看晕的话,或者说你已经明白了前面的这些概念铺垫之后,或许心中还有一个疑问就是为什么说可以用多个命令列表来记录可能不同的命令,最后再来执行,这样不同的命令队列之间会不会冲突呢(更直白的说不通的命令列表直接会不会有什么先后关系的约束从而使得异步执行这种方式失去了意义)?举例来形象的说明,比如我们用一个CPU线程+一个命令队列
原创
1803阅读
16评论
7点赞
发布博客于 4 年前

D3D11和D3D12多线程渲染框架的比较(三)

1.    CPU线程和GPU线程的区别另外我们还需要深刻的理解的一个概念就是CPU线程和GPU线程的区别。1.1.  CPU线程CPU线程在Windows操作系统中更多的是指一个存储了几乎所有CPU寄存器状态以及堆栈等资源信息的内核对象(可能还有内核安全信息等),是一个复杂的重量级的对象,并且在Windows中线程是最小的执行单元。同时得益于CPU单核
原创
2609阅读
0评论
2点赞
发布博客于 4 年前

D3D11和D3D12多线程渲染框架的比较(二)

1.     多线程的一些基础知识和问题1.1.    并发和并行如果你对多线程编程理解比较深刻的话,那么首先第一个要搞明白的概念就是“并发”和“并行”的区别,并发很多时候指的是在一个时间段内,共同执行的任务数。比如1秒钟之内轮流执行了50个左右的线程;再比如说一个网站的并发访问峰值是1秒钟10000次,这些任务中的某几个可能在某一时刻内是同时执行的也可能是在某个时间段内是先后执行的,但总
原创
1993阅读
0评论
3点赞
发布博客于 4 年前

D3D11和D3D12多线程渲染框架的比较(一)

前言 D3D12伴随DirectX12自2014年正式发布以来已经近3年多时间了。遗憾的是我最近才有时间仔细研究D3D12接口及编程方面的内容。D3D12给我总体的感觉用一句话来概括就是——D3D12是一个“显卡操作系统!”。 得益于我对Windows内核编程的深入了解和掌握,突然发现掌握起D3D12多线程渲染时居然可以无障碍学习,看来并不是学过的东西都会过时,这也是让我暗自窃喜的地方。正所谓
原创
5706阅读
0评论
5点赞
发布博客于 4 年前

VS2015中设置D3D12根签名HLSL文件自动编译属性时的注意事项

在DirectX12中,一个重要的HLSL高级语法对象就是根签名对象,当前有两种主要的方式来得到根签名:一种是编写一个HLSL代码文件,然后编译得到;另一种方式是在C++代码中填充D3D12_ROOT_SIGNATURE_DESC结构体后创建得到。 后一种方法纯代码,此处暂且不表。 而利用HLSL代码文件方式时,可以利用fxc.exe工具来编译,具体做法是在VS2015中建立一个HLSL代码文件
原创
740阅读
0评论
0点赞
发布博客于 4 年前

Win10环境下,拦截WM_NCCREATE消息时的一个诡异BUG

Win10环境下,拦截WM_NCCREATE消息时的一个 诡异BUG这几天在编写一个测试渲染管线的程序时,我直接使用了一段大约在10年前封装的一段窗口代码:LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {//窗口过程; LRESULT lRet = 0;
原创
422阅读
0评论
0点赞
发布博客于 4 年前

3D数学与线性代数学习笔记之 ——深刻理解矩阵乘法

原文因为使用了大量Word公式,而无法正常的导入到这里,索性我就全部转成图片上传了,请大家见谅。需要Word文档的可以给我留言,或加我QQ索取,见到后我会发给大家。
原创
1040阅读
0评论
2点赞
发布博客于 4 年前

【原创】Flex和Bison中巧用单双引号提升语法文件的可读性

使用Win Flex 和 Bison有一段时间了,期间搞了几个小型语言的编译器,也整理了C和C++的语法文件,在使用过程中我发现,如果按照传统的%token标记,将运算符,如“+”、“-”、“*”、“/”等搞成文字记号,比如:%token PLUS、%token MINUS,在声明语法时,就会出现像下面这样的定义:simple_exp : simple_exp PLUS simple_e
原创
310阅读
0评论
0点赞
发布博客于 4 年前

华为“美腿9”手机给我的惊艳!

今年4月左右,一个偶然的机会我弄丢了我的手机,于是在老婆的怂恿下我果断入手了华为的”美腿9(mate9)“手机, 起先我只有一个感觉就是贵!没见过啥大场面的我,被这个价格深深折服了,一直搞不懂为啥国产手机也卖这么贵?管他的看到大家说商务男都在用“美腿”,那我也用吧,全当是装13了。 用了一段时间,这个手机似乎也没啥让我感到特别有彩的地方,一个偶然的机会我随手拍了下面这张照片,瞬间就惊艳
原创
2017阅读
0评论
1点赞
发布博客于 4 年前

【原创】点点鼠标在Unity3D中实现准电影级镜头感渲染效果

 学习和使用Unity3D也有个把月的时间了,得益于十多年来对3D图形算法及游戏编程的不懈努力学习,上手Unity3D我居然只用了1晚的时间,这不是夸张的说法。我只能用一句话来形容我当时的感觉:众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。如果你问我最好的3D游戏引擎是什么,我不一定能给你满意的回答,这就像你问我世界上谁最美?什么编程语言最好一样,我基本没法给你答案,但是如果你问我上手最...
原创
2484阅读
2评论
0点赞
发布博客于 4 年前

【原创】IOCP编程之聚集散播

做为IOCP应用中重要的一个方法就是被称为“聚集-散播”的方法。非常遗憾的是在很多介绍IOCP使用的资料中,我几乎没有见过有专门介绍此方法的文章,因此本文就重点讲述此方法。在使用IOCP操作大量的TCP连接并处理IO请求的时候,一个很让我们头疼的事情就是所谓的“粘包”问题,即当发送方发送的数据包尺寸小于接收方缓冲,同时又连续发送数据的情况下,两个数据包被一起接收,接收端就需要将包重新拆分,如果...
原创
270阅读
0评论
0点赞
发布博客于 4 年前

【原创】线性代数学习笔记——剑桥食谱

最近学习了《麻省理工公开课:线性代数》,首先向吉尔伯特-斯特林老师致以深深的敬意,他的课程使我对整个线性代数有了全新的认识。本着打铁要趁热的精神,我又抓紧时间开啃华章数学译从的《线性代数及其应用》和《矩阵分析》,现在的感觉就是像广告上说的那样:So easy!在《线性代数及其应用》一书中,我居然学到了最科学(或者说最数学)的减肥方法——剑桥食谱,再一次被自己的无知震撼到了。这里就把这个方法介绍...
原创
1762阅读
4评论
0点赞
发布博客于 4 年前

【原创】Tensorflow Windows 安装逃坑记

Tensorflow V1.0发布后,可以说是个新纪元的开始,为了不被未来抛弃,我这个老Win派也加入了学习使用Tensorflow的大军,当然首先就要安装Tensorflow。在经过3天郁闷加惊喜的过程之后,终于在我的i7-6700HQ + GTX965M+Win10笔记本电脑上安装成功了。今天在只有核显的笔记本上也安装成功了,现在将安装经验(注意是经验,不是教程)总结一下,以免大家再次误入深坑
原创
596阅读
0评论
0点赞
发布博客于 4 年前

【原创】循环体并行优化(二) ——多维循环迭代空间的仿射变换及循环上下界不等式的矩阵表示法

上回书说到(忘了我不是说书的了,习惯性口语,见谅!),我们可以通过一个简单的仿射变换将一维的“不连续”循环下标空间变换到一个“连续”的下标空间中。这次,我们则继续来看看如何将一个高维的“不连续”循环下标变换到“连续”的循环下标空间中。如果非要为这种变换加上一个理由的话,我认为那就是不要在我们的整数向量空间中留下太多的“洞”。因为对于一个增量不为1的循环变量来说(包括绝对值大于1的负增量也就是递减量
原创
757阅读
2评论
0点赞
发布博客于 4 年前

【原创】循环体并行优化(一)——循环迭代空间的仿射变换

最近痴迷于编译原理而不能自拔,这么多年来一直是会在某一段时间痴迷于一件事物,性格使然,无法自控。随着钻研深入,多年前的一个模糊的想法——搞一个自带针对多处理器系统并行优化的编译器,慢慢的发现这个想法并不是遥不可及了。在看了编译原理第二版的并行性和局部性优化章节的内容后,眼前突然豁然开朗。 在多核处理器横行的今天,我的手机上都有八个可以同时执行任务的处理器的年代,很难想象不用并行处理如何去榨取这
原创
1044阅读
0评论
3点赞
发布博客于 4 年前

【原创】让VS2015与Win Flex Bison共舞

时光荏苒,岁月如梭!很久很久没有更新博客了,很多要写的东西都只是开了个头,或者只写了一小部分因不完整而无法发布,实在遗憾。无奈时间实在是太紧张,大量时间都用在了看书、学习和工作上,不能快意自在的笔耕以饲读者,深感愧疚。前一久加入了一个立志开发编译器的网友团队,哪不知还没开始就又结束了(干嘛说个“又”字,原因你懂的),但是这次经历居然又勾起了我10多年对编译原理的那份迷恋,从书架上翻出那些10多...
原创
2107阅读
2评论
0点赞
发布博客于 8 月前

容器技术在云中如何定位

导读:Docker是一个容器管理系统,能够自动化的创建容器来运行应用/组件。它的基本形式,即使用一组API管理这些容器,可以从模板或者命令构建。关键词:容器技术 Docker API管理 TechTarget中国原创内容,原文链接:http://www.searchcloudcomputing.com.cn/showcontent_87207.htm?info=cloudcomputing...
转载
2528阅读
0评论
0点赞
发布博客于 4 年前

Generating Complex Procedural Terrains Using GPU

前言:感慨于居然不用tesselation也可以产生这么复杂的地形,当然致命的那个关于不能有洞的缺陷还是没有办法,但是这个赶脚生成的已经足够好了,再加上其它模型估计效果还是比较震撼的。总之好文共分享吧。Ryan GeissNVIDIA Corporation 1.1 IntroductionProcedural terrains have traditionally been limited
原创
509阅读
0评论
0点赞
发布博客于 4 年前

为何D3D11的几个矩阵需要转置?

在学习D3D11的时候遇到一个问题,事情是这样的:D3D11引入了常量缓存(const buffer)用来实现数据的高速传输,这块儿buffer是CPU Only Write,GPU Only Read这样的特点,其他还是D3D9的惯例。在我调用完g_pD3DImmediateContext-&gt;Map的时候,出现了没有任何图像的问题,后经过改造后,显示终于正常了,先上代码: // ...
原创
714阅读
0评论
1点赞
发布博客于 4 年前

强制Windows 7启动到安全模式不使用F8键

前言:         使用VitualBox一个郁闷的事情就是要安装虚拟机中的3D支持必须要将虚拟机上的系统启动到安全模式下,然后安装它的扩展包才能启用3D虚拟支持,当然这似乎没什么大问题启动安全模式嘛,有多复杂,按着F8不就行了?结果哥杯具了,起了多少遍按F8统统不行,哪怕一直按着都不行,win7下就是不行,而WinXP虚拟机中就可以,郁闷!于是上网搜到了这篇神文,于是就转载了,留着以后备用
原创
8966阅读
0评论
2点赞
发布博客于 4 年前

代码偶得——比较两个COM对象是否相同

晚上在挑灯夜战看代码时,突然发现一个很有意思的函数,这个函数用来比较两个COM对象是否是相同的对象的。乍看以为就是比较两个接口是否是相同的指针值,仔细琢磨才发现,仅仅比较接口是会被蒙骗的,因为还有COM包容和聚合的可能在里面,所以即使两个COM接口指针真的相同也不能断定是同一个对象的。下面先贴上代码,记录在这里供大家参考: template bool AreComObjectsEqual(T1
原创
264阅读
0评论
0点赞
发布博客于 4 年前

D3D11设备接口的动态创建方法

在微软的例子中,提供了一种动态创建ID3D11Device接口指针的方法,发在这里,供大家参考.该方法的优势就是可以方便的判定系统中是否支持D3D11,并且针对可能的情况,通过MessageBox的方法,给出了可能的解决方案:HRESULT WINAPI Dynamic_D3D11CreateDevice( IDXGIAdapter* pAdapter,                  ...
原创
1152阅读
0评论
0点赞
发布博客于 4 年前

VC++实战OLEDB编程(十二)——终结篇

在经历了很长一段时间沉寂之后,Gamebaby我终于能够把OLEDB这个话题的日志给结束了,还有很多很多内容,最终我都录制成了视频教程,并且循序渐进的提供了所有的教程完整例子,有近30个例子.        视频教程在:http://www.ibeifeng.com/goods.php?id=243        因此后面的内容就不再单独写成博文了,有真正想深入学习并最终想成为OLEDB编程专
原创
285阅读
0评论
0点赞
发布博客于 4 年前

WinSock TCP keepalive的机理及使用(自动心跳包的发送)

TCP是面向连接的,在实际应用中通常都需要检测对端是否还处于连接中。如果已断开连接,主要分为以下几种情况: 1. 连接的对端正常关闭,即使用closesocket关闭连接。2. 连接的对端非正常关闭,包括对端异常关闭,网络断开等情况。对于第一种情况,很好判断,但是对于第二种情况,可能会要麻烦一些。在网上找到了一些文章,大致有以下两种解决方法:? 自己编写心跳包程序简单的说也...
原创
1876阅读
0评论
0点赞
发布博客于 4 年前

Windows2008新IOCP线程池学习笔记

         今天兴冲冲开始琢磨Windows2008新线程池中的IOCP部分新增的API的调用,也就是新的完成端口的调用方式,新的API如下:CancelThreadpoolIoCloseThreadpoolIoCreateThreadpoolIoStartThreadpoolIoWaitForThreadpoolIoCallbacks这几个函数其实从名字并不难理解其调用方...
原创
295阅读
0评论
0点赞
发布博客于 4 年前

VC++窗口应用程序中使用控制台输出

用了n多年的OutputDebugString作为调试输出信息的方法,很顺手,在VS2008中用起来也依然顺手,VS2010亦然.马上2012了,我想如果真的有末日,就在末日来临之前,让我尝试下与以往不同的方法,不要让生命留下什么遗憾.所以我就想能不能使用一个控制台窗口来作为辅助的调试信息输出窗口,甚至可以用它来接收一些控制命令,从而更灵活的控制程序的调试呢?于是又一个大胆的尝试历程开始了,和...
原创
1896阅读
0评论
0点赞
发布博客于 4 年前

【引用】空间曲线的切线、主法线、副法线

所有图形见:数学图形目录     切线、主法线和副法线形成的曲面:   返回:数学图形目录
原创
3169阅读
0评论
2点赞
发布博客于 4 年前

让Windows 7 32位版支持大于4GB的内存

一个偶然的机会,我的电脑系统崩溃了,之前的Vista彻底不能用了,因为安装SP2补丁,彻底挂掉了.和平常一样,俺借来安装光盘准备先装个XP系统,然后再用硬盘安装工具装个Windows 7。听说Windows 7效果不错,比该死的Vista好用多了,喜欢尝鲜的我当然挡不住这个诱惑了。因为偶木有Windows 7的安装光盘。 突然悲剧的情况发生了,安装盘启动到一半居然蓝屏了,老中医遇到新问题啊,郁闷
原创
390阅读
0评论
0点赞
发布博客于 4 年前

我的第一部MFC编程视频教程终于上线了

经过两个多月的辛苦工作,我的第一部讲解最新版MFC9.0类库及用法的视频教程终于在北风网上线了: http://www.ibeifeng.com/goods.php?id=164 欢迎大家踊跃收看,并提出宝贵的意见,以利于我今后推出更多更好的视频教程,更好的为广大网友服务.
原创
3400阅读
0评论
0点赞
发布博客于 4 年前

IOCP编程之重叠IO

其实这个标题有点“标题党”的味道,为了大家搜索方便我故意冠以IOCP编程之名,其实重叠IO编程并不一定需要IOCP,而IOCP编程就一定需要重叠IO。是不是已经被这句话给绕晕了?总之是为了更好的应用IOCP,所以要理解重叠IO。这篇文章的核心就是讨论重叠IO的来龙去脉。在很久很久以前,在用C语言写DOS程序的年代,就有了很完整的IO标准库支撑,printf输出字符到屏幕,fopen,fwrit...
原创
271阅读
0评论
0点赞
发布博客于 4 年前

7、XML数据类型的高级应用

在本章前面的各小节中,主要围绕在SQL Server 2005 中如何对XML数据本身操作的方法进行了讲解。这一节的内容则是围绕如何将T-SQL查询的结果转换成XML形式,以及如何将对XML数据的查询转换成T-SQL结果集的形式。 11.7.1  使用 OPENXML 查询 XML 在SQL Server 2005种提供了如何将对XML数据的查询结果转换成数据表形式的方法。下面的例子显示了如何
原创
166阅读
0评论
0点赞
发布博客于 4 年前

6、使用XML索引

和其他常用的数据类型一样,XML数据类型也可以用来创建索引。这一节主要讲解如何在XML类型的数据列上创建和使用索引。 11.6.1  XML索引介绍 在SQL Server 2005中,XML数据的存储同二进制大对象是一样的(比如:image类型、text类型等)。此时,对XML数据的查询时关注的焦点就集中到了操作效率上。针对这种情况,SQL Server 2005 提供了专门针对XML数据列
原创
603阅读
0评论
0点赞
发布博客于 4 年前

5、使用XQuery

这一节开始将介绍专用于XML数据的标准查询XQuery。XQuery是W3C组织为操作XML数据内容而专门指定的一套查询XML的标准。在SQL Server 2005中包含了对XQuery查询子集的支持,同时做了一些扩展。 11.5.1  什么是XQuery XQuery对于XML数据来说,其作用就像SQL语言对于数据库中的数据一样。XQuery查询的基础表达式是XPath。 下面是一个XM
原创
961阅读
2评论
1点赞
发布博客于 4 年前

4、XML架构集合

11.4.1  什么是XML架构集合 在一个特定的XML应用中,往往需要用到不止一个XML架构信息来定义多个XML数据的格式。如何管理好这些XML架构就是非常现实的问题。 通常这些XML架构都是可以分类管理的,以用于不同的应用目的。令人高兴的是SQL Server 2005针对这种情况,提供了XML架构集合对象来管理不同类的XML架构数据。 在SQL Server 2005内部架构集合是一个
原创
305阅读
0评论
1点赞
发布博客于 4 年前

2、SQL Server 2005中使用XML数据类型

这一节将介绍如何用普通的T-SQL语句来操作XML数据。同时介绍了XML数据类型的一些特点。 11.2.1  使用XML变量 在SQL Server 2005中增加了新的内部数据类型XML。在实际应用时可以完全将XML数据类型理解为普通的INT、CHAR等类型。下面就用实际的例子来说明如何使用XML数据类型。 启动SQL Server 2005 Managerment Studio,连接到服
原创
214阅读
0评论
0点赞
发布博客于 4 年前

1、什么是XML

什么是XML,如果要真正讲清楚这个问题可能又要写另一本书了。在这本书中仅介绍一般的概念,只要能够正确地操作SQL Server 2005中的XML数据类型即可。下面将简单介绍XML的一些基础知识。 11.1.1  认识XML XML全名是Extensible Markup Language,意思是扩展性标记语言。 下面是一个XML文本的例子: What is XML? T
原创
163阅读
0评论
0点赞
发布博客于 4 年前

VS2005、VS2008中如何屏蔽讨厌的MSVCR*.dll的引用

VS系列工具作为目前微软主打的集成开发环境,在历经了近20多年的发展后,到如今已经可以说是Windows平台上各种IDE环境中的翘楚了。很多别的开发工具已经难望其项背了,如今VS2010也已经面市很长时间了,但是因为笔者囊中羞涩,无法升级硬件,所以也没有办法去进行那个180天的VS2010体验之旅了,实为憾事。当然这是别话,现在我主要使用的依然是VS2008,用它来开发我想要的东西。当然主要指使用
原创
174阅读
0评论
0点赞
发布博客于 4 年前

用Windows API编写一个精确定时的循环

 这几天跟网友讨论一个程序优化问题时,遇到一个需要延时的循环,结合我所知道的知识,并突发灵感,想到了用Windows系统提供的定时器API写一个精确延时循环的方法。问题原本是这个样子的,就是说,在一个循环中执行一些操作后,需要用Sleep这个函数,延迟一定时间后,在执行下一轮循环,伪代码如下:for(int i = 0; i &lt; MaxCount;i++){     dos...
原创
950阅读
0评论
0点赞
发布博客于 4 年前

B+Tree模板改进版0.51版——可独立编译,修改了错误

最近应网友的要求,仔细检查和修改了B+Tree的模板类,修正了几处错误,主要是删除Key的参数错误,同时去掉了那个头文件的包含,直接将头文件的内容贴在了文件开头处,以使此模板类可以独立使用。       注释掉的显示到树控件中的方法,可以在使用MFC的CTreeCtrl情况下自行恢复即可,这样就可以将整个B+Tree显示到树控件中,方便只管的观察B+Tree节点的构造。但是因为B+Tree结构
原创
93阅读
0评论
0点赞
发布博客于 4 年前

IOCP编程之基本原理

在我的博客之前写了很多关于IOCP的“行云流水”似的看了让人发狂的文章,尤其是几篇关于IOCP加线程池文章,更是让一些功力不够深厚的初学IOCP者,有种吐血的感觉。为了让大家能够立刻提升内力修为,并且迅速的掌握IOCP这个Windows平台上的乾坤大挪移心法,这次我决定给大家好好补补这个基础。要想彻底征服IOCP,并应用好IOCP这个模型,首先就让我们穿越到遥远的计算机青铜器时代(以出现PC为...
原创
230阅读
0评论
0点赞
发布博客于 4 年前

游戏引擎开发系列——消息循环篇

写了很多关于IOCP和OLEDB的文章,今天换个话题,不然很多网友都以为俺就是一服务端程序,其实我真正的身份是——程序员,什么都写的程序员,呵呵呵。这回讨论的话题主要集中到游戏引擎上来,目前国内游戏行业比较火爆,但是基础性的研究、技术资料都比较少,本人撰写这个系列,权当为产业尽绵薄之力。或者当做引玉之砖吧。关于什么是游戏引擎,现在还是没有一个统一的定论,但是大体的功能结构已经有些比较规范的...
原创
1475阅读
15评论
4点赞
发布博客于 4 年前

IOCP+WinSock2新函数打造高性能SOCKET池

 在前一篇文章《WinSock2编程之打造完整的SOCKET池 》中,介绍了WinSock2的一些新函数,并重点详细介绍了什么是SOCKET池,有了这个概念,现在就接着展开更深入的讨论。首先这里要重点重申一下就是,SOCKET池主要指的是使用面向连接的协议的情况下,最常用的就是需要管理大量的TCP连接的时候。常见的就是Web服务器、FTP服务器等。下面就分步骤的详细介绍如何最终实现SO...
原创
315阅读
2评论
0点赞
发布博客于 4 年前

VC++实战OLEDB编程(十一)——参数化查询和存储过程调用

 在一些面向业务的应用程序中,很多业务的查询往往是固定的,其中有些甚至只是根据不同的值改变几个固定的条件值而已。比如查询用户信息,通常都是根据用户编号或者用户名称等固定信息查询用户表得到一个结果集。比如查询语句:Select * From 用户表 Where 用户号=’xxxx’。往往在一些程序中,这个语句都是先被组成字符串,然后被执行。之前文章中的例子也是这样做的,最终的SQL语句都是一个字...
原创
397阅读
0评论
0点赞
发布博客于 4 年前

VC++实战OLEDB编程(十)——关于延迟提交新增行问题的澄清

 在“实战OLEDB编程”系列文章中,后面的几篇文章中讨论了一下关于延迟提交的问题,有网友回复说新插入的行无法延迟提交,并说是微软的一个bug,本着怀疑一切和刨根问底的精神,我对这个问题进行了深入的实验和研究,结果发现,这种说法很是不负责任的。现在可以肯定的说新插入行的延迟提交是完全没有任何问题的。至于为什么有网友说不能延迟提交呢?我也分析了一下原因,结果发现,有个关键原因导致新插入行的延...
原创
138阅读
0评论
0点赞
发布博客于 4 年前

WinSock2编程之打造完整的SOCKET池

  在Winodows平台上,网络编程的主要接口就是WinSock,目前大多数的Windows平台上的WinSock平台已经升级到2.0版,简称为WinSock2。在WinSock2中扩展了很多很有用的Windows味很浓的SOCKET专用API,为Windows平台用户提供高性能的网络编程支持。这些函数中的大多数已经不再是标准的“Berkeley”套接字模型的API了。使用这些函数的代价...
原创
201阅读
0评论
1点赞
发布博客于 4 年前

VC++实战OLEDB编程(九)

在前面的系列文章中,关于OLEDB的大概面貌算是介绍清楚了,很多网友也已经开始了伟大的OLEDB编程实践,这也让我很欣慰。但欣慰之余,我认真的审视了前面的内容,结果发现还是遗漏了很多很多非常非常有用的细节,比如我们常用的数据类型转换,这个专题就几乎没有讨论过,以至于很多网友在OLEDB编程应用中还是只能裹足不前,这也成了一个非常严重的障碍,那么这次我就集中精力先把这个障碍扫清吧。一般的,我们应...
原创
272阅读
0评论
1点赞
发布博客于 4 年前

VC++实战OLEDB编程(八)——行状态与延迟更新

在之前的七篇文章中,我们连续的掌握了从连接数据库到取出数据,再到修改数据的整个过程,同时也看到了一个相对较完整的例子,如果认真阅读并实践前面系列文章的话,那么作为OLEDB编程入门的内容算是都掌握了,当然所有已掌握的内容都是将要学习的新内容的基础,因此之后的文章都要求对前面的内容有熟练的掌握和深刻的理解。OK,下面我们开始新内容的学习。在第六篇文章中,我们介绍了如何修改、新增、删除记录的方法,...
原创
187阅读
0评论
0点赞
发布博客于 4 年前

VC++ 实战OLEDB编程(七)一个完整的例子

       为了方便大家总结和学习前面的章节内容,此处给出一个完整的OLEDB的例子,作为前面所有内容的一个总结,使用VS2008新建一个空的Win32项目,然后新建一个cpp文件,将所有代码都复制粘贴进去,然后编译执行即可,因为这个例子没有什么输出,所以建议使用调试方式一步步执行看程序的执行逻辑,代码中注释的部分并不表示没有用处,而是一些功能性的代码,有些事开关,有些是特殊功能,可以自己选择性...
原创
730阅读
0评论
0点赞
发布博客于 4 年前