惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LangChain Blog
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
Microsoft Azure Blog
Microsoft Azure Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
T
The Blog of Author Tim Ferriss
G
Google Developers Blog
Hugging Face - Blog
Hugging Face - Blog
Y
Y Combinator Blog
D
DataBreaches.Net
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements

博客园 - linyizsh

MTE Best fit gbuffer normal Mipmap不连续问题。 MLAA(Morphological Antialiasing) Volumetric Obscurance ao propagation volume... lpv 说下pack/unpack normal的问题 CheckPoint 修改crysis支持nvperfhud volume light/light shaft/god ray 小更新下,加了DOF DeferShading + VSM + HDR + SSAO CheckPoint d3d10 放几张美图 4.1 Atmospheric Scattering prt ZT
t&h
linyizsh · 2011-03-22 · via 博客园 - linyizsh

    老久没更新,发点吧,让前面一篇降下去。

    * 在D9下,SetStreamSource/DrawIndexedPrimitive,这几个参数的意思,久了经常忘记。
    OffsetInBytes: 设置VB的数据从哪一个位置开始,即IB里的第0个顶点,从这个地址开始算起。
    BaseVertexIndex: IB里的每个索引,加上这个数值,比如设置了2,则IB里的5会变成7。。。不太常用,但有时候会有意想不到的作用。
    MinVertexIndex: 告诉D3D,使用到的顶点从VB里的第几个开始,设置之后,对渲染无影响,只是帮助D3D在某些时候改进性能。。。
    NumVertices: 告诉D3D,本次DP,用了多少个顶点,设置之后,对渲染无影响,要注意的是这个跟MinVertexIndex没啥关系,并不是从MinVertexIndex开始算起的,只是帮助D3D在某些时候改进性能。。。
    startIndex: 与OffsetInBytes类型,设置IB的数据从哪一个开始读起。

    * Cry的地形并不是用一张图来算每一层的Alpha,而是用顶点中的color的256级来表示,每一个数值表示一个层。因此它不能表示半透明的层,只能在边缘1格的地方由1降到0。

    * D3DFORMAT MAKEFOURCC('N', 'U', 'L', 'L')格式的Target并没有必要设置成1x1(cry中是这么搞的)的大小。这个target无论多大,都不会消耗显存,并且draw的时候写入的像素也是0,速度也没啥变化。

    * 简易骨骼动画:

    Mesh当前帧顶点 = Mesh绑定时顶点 * 绑定时骨骼的变换到本帧骨骼的变换的改变量。

                           = Mesh绑定时顶点 * 绑定时骨骼的变换的逆矩阵 * 本帧的骨骼变换。

                           = Mesh绑定时顶点 * 绑定时骨骼的变换的逆矩阵 * 本帧的骨骼相对父节点的变换 * 本帧父骨骼的变换。

    其中,

    Mesh绑定时顶点:由Max导出。

    绑定时骨骼的变换的逆矩阵:从Max的Skin Modifier的GetBoneInitTM中取得(或者Physique Modifier的GetInitNodeTM中取得)矩阵。

    本帧的骨骼相对父节点的变换:从Max的骨骼的NodeTM和父骨骼的NodeTM得到,注意对于行矩阵,矩阵顺序是 ParentToChild = ChildToWorld * Inverse(ParentToWorld)。列矩阵则相反,根节点则直接保存NodeTM即可。帧之间的插值也主要是对这些数据做插值,在两帧之间没有很大变化的时候,四元数加向量和矩阵视觉上并没有很大差别。

    本帧父骨骼的变换:由前面从根节点累加。

    * deferred shading中light画volume的简单方法。
    眼睛在volume外,用CCW直接画volume;眼睛即将进入volume或在volume中时,用CW画,并且将volume轻微放大一些包含住camera。除了修改下cullmode,渲染流程完全不用变。

    * CSM中,如果shadowmap用atlas放到一张图中的时候,比如4个slice放到一张图的时候,计算shadow receive时,可以用一张很小的(64x64)的图,来选择slice的UV。比直接计算快。