10 2012 档案
摘要:// 设置体元语义,渲染三角形列表.deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST);以前我们选择的体元语义都是triangle list,在tessellation程序中,不一样了,现在我们的输入虽然还是一个三角形,但它当作patch处理,三个顶点即为patch的三个控制点。其它的shader文件中,我们都要加上下面的代码,否则的话,其它物体的渲染可能会出错:deviceContext->HSSetShader(NULL, NULL, 0);devic
阅读全文
摘要:Parallax occlusion Mapping 视差贴图视差贴图技术我们其实应该称之为视差遮蔽贴图技术,因为在这一技术中,会对纹理的坐标做变换,一些凸出的纹理会遮蔽到其他的纹理,这样就会看起来具备更好的凹凸的感觉了。视差贴图技术的实现原理,其实和法线贴图是一样的,都是根据法线贴图进行的处理。视差贴图比法线贴图提供更好的视觉效果,而且跟法线贴图有同一个目的:在保证模型细节的情况下,大幅度降低场景的多边形数目Parallax occlusion Mapping 视差贴图 (PDF文件)http://rapidshare.com/files/2485 ... ionMapping.rar.ht
阅读全文
摘要:传统的渲染过程通常为:1)绘制Mesh;2)指定材质;3)处理光照效果;4)输出。传统的过程Mesh越多,光照处理越费时,多光源时就更慢了。延迟渲染的步骤:1)Pass0先不做光照处理,将Mesh的Position信息和Normal信息绘制到纹理(RenderTargets,D3D支持多向输出);2)Pass1仅绘制屏幕大小的一个四边形,利用之前得到的Position纹理和Normal纹理对有效地区域选择性地进行光照处理,再输出最后的图像。分析:由于延迟渲染将光照的处理量由空间转换到了平面,减少了光照等效果的计算量,提高了绘制速度,对多光源的绘制优势更为明显。渲染流程延迟渲染管线可分为四个阶段
阅读全文
摘要:In the pixel shader, we first define base interfaces for different light and material types://-------------------------------------------------------------------------------------- // Interfaces //-------------------------------------------------------------------------------------- interface ...
阅读全文
摘要:1.构造一个平截台体(Frustum)最近距离=-projMatirx.43/projMatrix.33projMatrix。33 =深度/(深度-最近距离)projMatrix。44=-最近距离*(深度/(深度-最近距离))FrustumMatrix = projectionMatrix*viewMatirx;FM=FrustumMatrix;//最近面m_planes[0].a = FrustumMatirx._14 + FrustumMatirx._13; m_planes[0].b = FrustumMatirx._24 + FrustumMatirx._23; m_planes[0]
阅读全文
摘要:ID3D11DeviceContext InterfaceThe ID3D11DeviceContext interface represents a device context which generates rendering commands.MembersThe ID3D11DeviceContext interface inherits from ID3D11DeviceChild. ID3D11DeviceContext also defines the following types of members:MethodsMethodsThe ID3D11DeviceContex
阅读全文
摘要:在代码里直接出现的”abcdef”这种字符串,在程序执行的时候,系统会将它们放在常量区,所谓常量区就是一直存在的,只读的,不可更改的数据区域,并且一个字符串只会有一份。假设你在程序里有两行代码 char* p1 = “agcd” ; char* p2 = “agcd” ; 无论你这两个行代码隔了多远,如果你想知道p1和p2所指向的字符串在内存中是不是同一个,那答案是肯定的,p1和p2的值完全一样。”agcd”这是一个存在于内存中的常量字符串,它从程序一开始就在那里,一直到程序结束读不会改变。在内存中,”agcd”是以如下方式存储的 ‘a’ ’g’ ‘c’ ‘d’ ‘\0’ 它的最后肯定有一个字
阅读全文
摘要:资源视图(VIEW)主要有两个功能 :1)告诉 Direct3D 如何使用资源 (即,指定资源所要绑的管线阶段 ); 2)如果在创 建资源时指定的是弱类型 (typeless )格式 ,那么在为它创建资源视图时就必须指定明确的类型 。对于弱类 ,纹理元素可能会在一个管线阶段中视为浮点数 而在另一个管线阶段中视为整数当创建资源时 , 为资源指定强 类型 ( fullyfully-typed)格式 , 把资源的用途 限制在格式规定的范围内 ,有利于提高运行时环境对资源的访问速度 ……”所以 ,你只应该在真正需要弱类型资 ,才创建弱类型资源 ;否则 ,应尽量创建强类型资源 应尽量创建强类型资源The
阅读全文