DX
文章平均质量分 86
雪人2015
知其然并知其所以然
展开
-
ShadowVolume DX9
之前写过ShadowVolume,但是那是老版本(DX8)的DXSDK中的sample。而老版本并不是一个很好的解决方案。而DX9中的ShadowVolume还算是比较可取的方案。在这里主要对DX9中的ShadowVolume中的重点难点进行梳理。详细的细节,必须参考sample中的代码。 DX9中的shadowVolume最大的特点是建立了阴影体网格,而不是之前DX8中的动态生成轮廓边集原创 2012-02-24 19:47:38 · 1715 阅读 · 6 评论 -
D3D中的重要注意事项
stencilbuffer的比较是用参考值与目标值比较,参考值在前面,所以如果比较函数是小于,那么是参考值小于目标值。 COLORWITEENABLE渲染状态有点特殊,禁用可以是FALSE,但启用一遍要用0x7.因为COLORWRITEENABLE可以控制4个颜色通道。分别用低4为控制,0x7可启用的蓝绿红3个通道。 DirectX所有的Draw函数要根据三角形的朝向,不要以为只有原创 2012-02-06 09:41:59 · 1111 阅读 · 0 评论 -
effect文件编写注意事项
在编写effect文件时,我经常因为一些常量没有设置,以至于耗费半个小时去找,最后才发现是新加的一个全局变量没有初始化。所以需要注意的第一项就是:首先查看全局变量是否都正确初始化,静态的在effect文件中,非静态由ID3DEFFECT接口设置。几乎所有的向量都需要归一化,所以千万别忘了将该正规化的正规化。灯光方向在进行光照计算时应该进行反转,变成由物体的顶点到灯光位置的向量。在VS,PS原创 2012-02-03 11:47:12 · 1545 阅读 · 0 评论 -
Bump map 和 Tangent space(切线空间)
在众多3d技术中,bump map算是一个重要而普遍的技术了。原本看了只有很浅的了解,由于没有实际应用也就没多少体会。现在看到《Beginning Direct3D Game Programming》,其中有这样的实例,就研究了大约一天的时间。终于算是心中舒服很多。怕自己遗忘,特写下此篇,好让自己以后再拾起来,温故温故。 首先为什么要用bump map呢? 那是因为如果要实现高质量的渲染画原创 2012-02-06 13:06:26 · 5394 阅读 · 0 评论 -
Sphere mapping 和 Cube mapping
Sphere mapping 和 Cube mapping也是常见的技术。 Sphere map更早,是较早提出的环境映射的方法。 Sphere mapping 是基于这样一个事实:将一个理想高反射的球体置于场景中央,从一个角度无穷远处拍摄此球体,将得到一张全景图。例如: --------------- --------------------当然说是全景图,但是在原创 2012-02-07 16:43:31 · 5795 阅读 · 0 评论 -
Shadow Volume DX8
Shadow Volume是一种可以使实现阴影任意投射的高级方法。主要借助模板缓存(stencil buffer )实现对阴影区域的标识。最后借助标识进行alpha混合绘制阴影区域。 大致思路:在Shadow Volume中最重要的就是找出物体相对于灯光的轮廓。然后为所有的轮廓边构造四边形。四边形的构造是这样的,将四边形的一边与轮廓边对齐,然后将另一边(相对于轮廓边的边)沿着灯光照射的原创 2012-02-09 09:38:59 · 1202 阅读 · 0 评论 -
HDRPipeline DX9
HDR这个词汇在我看过的书或资料中多次出现,从《Real-time Rendering》到SDK里面的偶尔出现,一直对其是一种莫名的感觉,HDR是什么,High Dynamic Range,范围很广,为什么要HDR呢?因为了更好的画面。这些很浅显的认识让我一直云里雾里。终于在DX9的sample中有这么个简单的HDR教学实例,确实让我了解很多。在网上看到3d本身渲染的未经过HDR处理的图片和经过H原创 2012-03-10 12:47:23 · 1658 阅读 · 0 评论 -
ShadowMap DX9
ShadowMap基本的思想很简单,首先从聚光灯角度对场景建立并保存场景深度。然后在正常渲染场景中,比较每个渲染点到灯的距离值(或者说到灯的深度值)是否比对应的已经建立在场景深度中的值要大,也就是说要远,如果远证明从当前视点观察的此点在灯角度中看不见,所以该渲染点处于阴影中,否则,不然。 首先分析一下ShadowMap的优劣:优点:ShadowMap只适合较近距离的阴影投射,由于3原创 2012-03-01 15:50:04 · 1535 阅读 · 0 评论 -
SkinnedMesh DX9
本想学习PRT技术,但是觉得这个技术太高级,而且就中国现在的技术来看,还未到这个程度。但是PRT技术一定要学,一定要掌握,才能不致于落后国际水平太多。这几天学习了一下骨骼动画。以前记得参加齐鲁软件大赛的时候,用Ogre很简单的就实现了骨骼动画。现在终于可以自己在DX基础上亲手完成这个3d游戏中最重要的技术。 骨骼动画中有许多我们需要注意的。简单屡一下骨骼动画中需要知道的基本知识点。原创 2012-03-23 10:01:05 · 1063 阅读 · 0 评论 -
Post Process DX9
这个案例是一个大杂烩,它把很多常用的操作以单独模块的形式进行组装以实现一定的效果。这里面最重要的是所有的这些技术都是后处理技术,也就是在正常渲染完成后对生成的场景帧(或者说纹理,图片)进行加工处理。Post Process与以往案例最大的不同在于将物体的几何信息分别存贮在不同的渲染表面中。这样做的好处,在后处理中仍然能得到需要各种的信息。另外后处理的一个强大之处在于,当场景有多个或多种灯光时,我们原创 2012-03-15 20:48:52 · 1130 阅读 · 0 评论 -
MultiAnim DX9
这个案例比SkinnedMesh多的我觉得只是与骨骼动画更多的接口的认识。 MultiAnim主要的知识是:在D3D中,一个动画控制接口有多个轨道,每个轨道上都独立的控制。我们可以控制轨道是否启用,速度,权重,优先级别。然后同个优先级别的每个轨道的动画会按对应的权重进行混合,最后不同优先级别再度混合。 这种独立有条理的结构同时也可以实现一个动画平滑过渡到另一个动画。 这原创 2012-03-30 11:54:48 · 805 阅读 · 0 评论 -
Depth Of Field(DOF) DX9
在以前学习的各项技术中,DXSDK均标示那些案例为中等难度。而这次学习的Depth Of Field确实高等难度,本想着这次可能会学很久,结果看完这个sample的Doc之后,发现使用的技术很简单,才花了一天时间就学完了(如果自己能更仔细估计能更快),真不清楚DX是按哪个标准划分难度级别的。闲话少说,进入正题。 Depth Of Field中文我觉得可以翻译为视野范围。更准确的说就是视野中原创 2012-03-12 22:36:00 · 2118 阅读 · 3 评论 -
ParallaxOcclusionMapping( POM ) DX9
ParallaxOcclusionMapping(后面成为POM)是一个不错的高级技术,在我看来它是至今让我印象最深刻的技术。与其说是视差,不如说准确的视线与高度图交点算法。在《Real-time Rendering》中也见过他的前身-ParallaxMapping,但是POM的精确度更高,对于斜视效果也很不错,这将让它在未来的重要技术中占有一席之地。闲话少说,还是重在实质技术。 在DX9原创 2012-03-06 23:21:46 · 5283 阅读 · 4 评论 -
Directly Mapping Texels to Pixels (Direct3D 9)
原文地址:Directly Mapping Texels to Pixels (Direct3D 9)When rendering 2D output using pre-transformed vertices, care must be taken to ensure that each texel area correctly corresponds to a single pixe转载 2013-07-23 10:18:03 · 5919 阅读 · 0 评论