directx
文章平均质量分 73
YgritteSnow
这个作者很懒,什么都没留下…
展开
-
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 4.1
3D Game Programming With DirectX11翻译 2016-02-19 03:42:39 · 891 阅读 · 2 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.2
5.2 模型的表示一个固体的3D对象是用三角网格来近似表达的,因此,三角是我们创建模型块的基础。如图所示,我们可以用三角网格逼近任何现实中的3D物体。通常当你用更多的3D网格的时候,你会得到一个更好的近似,给模型更细致的细节。当然了,也会需要更多的资源。所以需要根据硬件配置和观众的感受来折衷。三角有时候也会被用来话线和点,比如,一个曲线可以被分割成一系列的厚度是1像素的短线。 颤抖吧,凡人:手动保翻译 2016-02-19 03:51:30 · 466 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.1
第五章 渲染管线本章的主要主题是渲染管线。给定一个3D的场景和一个有方向和位置的虚拟的摄像机,渲染管线会执行一系列的步骤来生成这个摄像机看到的2D图像。这章主要还是理论——下一章我们会学怎么画。为了学渲染管线,我们首先有两个任务:第一,讨论3D影像里边的一些要素,亦即如何通过2D显示器看到3D效果;第二,讨论颜色如何在代码里边表示以及如何作用。目标: 1. 讨论几个用于模拟真实场景用的关键标志,和翻译 2016-02-19 03:50:48 · 440 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 4.5
4.5 调试Direct3D应用程序为了节约篇幅,我们省略掉处理错误的部分。不过,我们还是使用了一个宏来检查返回的HRESULT值。我们的那个宏定义在d3dUil.h里边。if defined(DEBUG) | defined(_DEBUG)#ifndef HR#define HR(x) \{ \ HRESUTL hr = (x); \ if(FAILED(hr)) \翻译 2016-02-19 03:49:04 · 426 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 4.4
4.4 DEMO应用程序框架d3dUtil.h, d3dApp.h, d3dApp.cpp这三个文件是我们要用的DEMO文件,可以去这本书的网站下载。这些文件在每个demo都会用到。在本书的第二和第三部分将会把这个文件放进一个Common路径然后我们不就用老复制它了。它们的作用如文件名所述。建议读者自行学习这些文件因为我们不会一行一行讲,比如创建窗口什么的就是假设读者已经知道了。这个框架的目的就是隐翻译 2016-02-19 03:47:59 · 577 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 4.6
4.6 总结Direct3D可以看做是应用程序和图形卡之间的一个媒介。例如,应用程序调用Direct3D函数来绑定资源视图到硬件渲染管线,然后输出到渲染管线,画出图像在11里边,一个支持11的图形设备必须支持所有的11的指令集,只有极少数例外。组件对象模型(Component Object Model (COM) )是一个能够让DirectX成为一门语言并且具有向后兼容性。Direct3D程序翻译 2016-02-19 03:49:50 · 937 阅读 · 0 评论 -
如何用dx画一个界面
昨天开始在我的dx小demo里边加ui,其实十分顺利的加上了……然而出了点小问题,ui无法显示在窗口的正中间……只好发到了微信群里边问了下。同事说了四个字,“正交投影”……当时我的表情是这样的:( ⊙ ▽ ⊙ )。然而同事说完就不见了!然而经过一晚上我忽然悟出了什么!然而就在我今天兴高采烈发信息说我悟出来的时候同事说什么鬼!然后给了我一个函数 D3DXMatrixOrthoLH …… 但是我还原创 2016-05-18 20:31:17 · 1121 阅读 · 0 评论 -
dx学习日记
终于可以顺利的画出来想画的东西了!好开心! git地址是我version 0.02016-5-13开始建立本文章~代码的基本想法就是把模型、相机、光照,分别用各自的类表示,主要有Config(设置数据)、PreRender(一次全局渲染)、Render(每帧渲染)、OnKeyDown(处理键盘消息);大家都放在一个总的管理的类里边,统一调用大家的这些接口。效果图: 球分 16原创 2016-05-13 21:15:35 · 544 阅读 · 0 评论 -
屏幕反走样(screen based antialiasing) 节选自 Realtime Rendering 5.6.2
这一节看来看去死活看不懂,决定发动翻译大法。。像supersampling这样的技术是通过独立计算着色、深度、位置来完全指定的。代价昂贵且效果不好。所以,DX并不直接支持supersampling作为反走样。多重采样策略可以降低这种技术的高计算量,通过对不同种类的数据使用不同频率的取样。一个多重采样算法,将在一个单pass内,对单个pixel进行多个采样。简称MSAA。最近还有coverage s翻译 2016-07-31 16:20:03 · 1387 阅读 · 0 评论 -
DX Sample阅读笔记
Tutorial 6:Meshes加载Mesh D3DXLoadMeshFromXPIX Game Debugging Sample使用PIX for windows来查看逐帧缓存、单步渲染等。Basic HLSL计算BoundingSphere LockVertexBufferD3DXComputeBoundingSphereUnlockVertexBufferEffect原创 2016-09-07 08:44:19 · 627 阅读 · 0 评论 -
[翻译] 凹凸贴图(bump mapping) 节选自RTR 6.7
这一节特别有趣,而且目测比较难懂,决定发动翻译大法6.7 综述这一节描述了一系列的小尺寸细节表达技术,统称为凹凸贴图 bump mapping。所有这些技术都通过每像素着色的程序来完成的。它们可以给予一个比单独的贴图更3D的表现,但是不如真正的几何效果。 细节可以根据大小分为三种:大型特征(macro-feature)——覆盖了许多pixel,中性特征(meso-feature)——横穿一些pi翻译 2016-08-10 20:00:40 · 2033 阅读 · 0 评论 -
dx学习日记2
距离上一篇dx学习日记(如果还算“日记”的话=,=)已经过去了若干个月。。。抛弃上一篇的终极原因是因为受不了上一篇的那些框架了! 毕竟上一篇的主旨在于“收集所有可以用的API”,导致为了统一多种同一功能API函数而把设计复杂化了。。。=,= 于是开了个新坑~ 本次练习从着色器开始,旨在“做出方便使用的工具”,只保留最有用的代码。 我是git地址Version 1.0艰难险阻终于做出来了原创 2016-08-26 18:28:03 · 598 阅读 · 0 评论 -
周笔记([26~30]/52) - 回到RTR的怀抱= =……
笔记还是用xmind,可是不在csdn写总结又不行 = = 所以我想到了一个完美的办法 = =。。那就是在标题上增加一个封装,把 xx/52 中的 xx 增加一个指向范围的形式~然后博客里只保存指向xmind的指针~ 完美 (•̀ᴗ•́)و 对了,中括号代表的是闭区间~RTR笔记更新记录git地址https://github.com/YgritteSnow/Notes相关文件第七章:Run原创 2017-07-02 22:17:36 · 557 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.3
5.3 基础颜色电脑显示器上的每个像素点发出红蓝绿三种颜色的光的混合。当混合光达到视网膜上的某片区域的时候,锥形的感觉器官单元被激发,生成神经冲动从眼睛传送到大脑。大脑大脑把这些信号解释为颜色。当颜色混合量改变的时候,细胞受到的刺激也不一样,这就让大脑得到了不同的颜色。图片展示了几种混合,也展示了几种不同的强度。对每种颜色使用不同的强度,可以得到现实中所有我们想要显示的实际颜色。 你可以玩玩Pho翻译 2016-02-19 03:52:19 · 511 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.4
5.4 管线粗窥有了一个队3D场景的几何描述以及一个有位置有方向的摄像机后,“管线”指代把摄像机看到的东西转化成2D图像的整个步骤。图5.11展示了管线的每个步骤流程,从GPU内存到另一边。从资源内存池到一个阶段的意思是,这个阶段把资源作为输入。比如像素着色器阶段,可能需要从读入一个资源存入内存才能做自己的操作。从阶段到内存的箭头意思是这个阶段会写入GPU内存,比如输出混合阶段,会把数据输出到纹理,翻译 2016-02-19 03:52:53 · 496 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 4.2
DX11 翻译翻译 2016-02-19 03:45:16 · 704 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 4.3
4.3 计时和动画为了正确的播放动画,我们需要一直计时。准确的说,我们需要计算两帧动画之间的时间。如果我们的帧率高,那么两帧动画之间的时间会很短,这样一来我们就需要一个比较精确地计时。4.3.1 性能计数器 为了精确计时,我们使用性能计数器。使用win32的性能计时函数我们需要包含< window.h>这个头文件。 性能计数器的计时单位叫做计数(counts)。我们使用性能计数器的QueryPe翻译 2016-02-19 03:47:04 · 717 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.11
5.11 像素着色器阶段像素着色器程序是在GPU上运行的。一个像素着色器会在每一个像素片段上运行,它使用插值过了的像素的属性值作为输入来计算一个颜色。一个像素着色器可以直接返回一个固定的颜色,也可以做一些很复杂的事情比如个别像素着色技术、反射、阴影效果。翻译存疑:per-pixel lighting: 个别像素着色技术翻译 2016-02-19 04:04:42 · 446 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 6.1
第六章在之前的章节中,我们主要关注了渲染管线的理论和数学方面。在这一章,我们开始关注渲染管线会用到的Direct3D的API接口和方法、定义顶点和像素着色器、提交供渲染管线使用的几何图形。在这章结束,你应该可以画画多种多样的几何图形,带颜色或者网格之类的模式。学习目标: 1. 发现Direct3D的接口方法,用以定义、存储、绘制几何数据。 2. 学习如何写基本的顶点和像素着色器 3. 学会如何翻译 2016-02-19 04:07:14 · 558 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.13
5.13 总结我们可以用2D图像来模拟3D场景——使用一些基于现实生活中我们可以看到的原理,我们会有一些相关的技术来实现这一点。我们观察到:平行线会汇聚于一个消失的点上;物体的大小随着深度增加而减小;物体会遮挡住它后边的物体;光照和阴影描述了3D物体的固体形态和大小;阴影暗示了光源的位置和物体的位置。我们用三角形网格来逼近物体。我们用3个顶点来定义一个三角形。在许多三角形网格中,顶点是被三角形公翻译 2016-02-19 04:05:46 · 528 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.12
5.12 输出合并阶段在像素片段被像素着色器生成之后,接下来就是渲染管线中的输出合并阶段了。在这个阶段,一些像素点也许会被踢出(比如深度模板测试)。没有被踢出的像素片段就被写入后台缓存。融合也是在这个阶段做的,在这里一个像素点可能会和后台缓存中已有的像素点进行融合而不是直接覆盖它。一些透明的效果就是由融合来做的。第九章会讲融合。翻译存疑:output merge(OM) stage: 输出合并阶段翻译 2016-02-19 04:05:18 · 584 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.10
5.10 光栅化阶段光栅化阶段的主要工作是根据已投影的3D三角形中计算像素颜色。翻译存疑:rasterization stage: 光栅化阶段5.10.1 观察变换 在裁剪之后,硬件可以做投影除法来转换到NDC空间中了。在NDC控件之后,组成2D图像的xy坐标就被转换到后台缓存中,被称作视口。在这个变换中,xy坐标的单位是像素。通常视口转换不会改变z坐标。因为它被用作深度缓存,它可以被D3D11_翻译 2016-02-19 04:03:59 · 668 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.9
(有图未加)5.9 裁剪在视窗锥的几何体应该被完全去掉,与视锥边缘橡胶的几何部分应该被裁剪,只有内不得被保留。图示了2D中如何裁剪。 我们可以把视锥看做一个六面体。——上、下、左、右、近、远平面。为了把一个多边形按照视锥裁剪,我们必须按照每个面逐一裁剪。当我们把一个多边形按照某一个面裁剪的时候,在正方向的那个面被保留了,负方向的那个面被去掉了。裁剪一个凸多边形总会得到一个凸多边形。总之硬件会做这翻译 2016-02-19 04:03:04 · 581 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.8
后来随着英语阅读能力稍微提高了些,我打出来的字也就少了。。。尊的不是懒。。。(好吧本来就是5.8 几何着色器阶段几何着色器阶段是可选的,我们第11章会讲。所以这里只简要说一下。几何着色器把整个原始信息输入进去,比如,如果我们使用三角形列表来绘制,那么几何着色器将会把三个顶点输入进去。(注意三个顶点已经通过了顶点着色器阶段了。)几何着色器的主要好处是它可以创建或删除几何信息。比如,输入的原始信息可以翻译 2016-02-19 04:02:21 · 508 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.7
5.7 细分阶段细分的意思是把一个三角形网中的三角形分割成多个来添加新的三角形。这些新的三角形可以被平移到新的位置来创建出更好的网格细节。 细分的好处有这些 1. 我们可以创建一个level-of-detail(LOD)细节等级原理。接近相机的三角将会被细分出更多的细节,而距离摄像机比较远的部分则不会被细分。这样一来,我们只在细节可以被看到的地方使用更多的三角形。 2. 我们可以在内存中保持一翻译 2016-02-19 04:00:42 · 430 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.6
这一节不懂的词比较多。。所以翻译存疑在每小小节之后 - -。而且出现了一些数学公式我当时直接截图的。。。以后有空再把这些图补上 - -。。。5.6 顶点着色器阶段当图元被聚合好了之后,顶点就被喂给顶点着色器了。顶点着色器可以看做是输入一个顶点输出一个顶点的函数。每个顶点都从顶点着色器通过,实际上,我们可以理论上想下边这个函数在硬件中工作: for(UINT i = 0; i < nu翻译 2016-02-19 04:00:04 · 514 阅读 · 0 评论 -
【翻(xue)译(xi)】3D Game Programming With DirectX11 - 5.5
5.5 输入汇编阶段输入汇编阶段(IA)从内存中读入几何信息(顶点和索引),然后使用它汇编成原始几何信息(三角和线)。(索引以后会讲到,简要地说它定义了顶点如何被结合)。5.5.1 顶点 数学的讲,三角形的顶点是两条边的交点,线的顶点是端点,单个的点的顶点是它本身。图中所示的顶点的三种用途是顶点最原始的几何形式。不过,在Direct3D中,顶点的定义比这个更加广泛。本质上来说,Direct3D中的翻译 2016-02-19 03:54:04 · 1211 阅读 · 0 评论 -
入职任务之自己做一套DX API~
据说是完美系的入职新人都要做这个入职任务~【连服务器端都要做 其实之前在学dx的时候也一直想要自己试着实现下DX的API来着,所以这个任务做起来也特!别!有!干!劲! Git地址:https://github.com/YgritteSnow/WorkTask/ 本文用来记录过程中的一些问题和一些有趣的坑~进度2017/1/8 周一 本来想继续做下模板缓存和优化下矩阵运算~原创 2017-01-07 17:30:00 · 795 阅读 · 0 评论