周笔记(11/52)
来源:互联网 发布:网页文字游戏源码 编辑:程序博客网 时间:2024/05/21 07:50
环境光闭塞(Ambient Occlusion)
简介
- 某个点被环境光闭塞的程度,可以通过从其半球面内发射的射线,与其他物体碰撞的情况来判断:如果碰撞的多且近,那么被闭塞的就多
- (离线渲染/闭塞贴图)使用光线投射的方法,随机投射出光线,判断其碰撞
- 使用八叉树来加速射线和三角的碰撞检测
- 使用 xnacollision.h/cpp 库,可以大大简化代码
Screen Space Ambient Occlusion(SSAO)
要点
- 在上边的基础上,只对屏幕上的点做环境光闭塞检测 -> 故而需要屏幕上的点的几何信息(方向、位置)-> 故而需要渲染其法线和深度作为中间贴图
- 检测闭塞的步骤中,使用半球上随机距离的点,检测该位置在屏幕上对应的点的深度,是否离目标足够近(经验值),且在目标点的正面
- 问题:可能是我理解错了?这样一来对于深度值相差比较大的两个模型,其后方的模型在边缘位置的闭塞岂不是不准确?
- 不仅可以用于Ambient部分,还可以用于 diffuse 部分等。
Meshes
要点
- 总体而言这一章是DX自己搞了一个Mesh的格式……涵盖的要素:
- 材质:引用的贴图可以记录文件名
- 顶点:只需记录位置
- 索引
- 子集:记录顶点、面元的索引偏移值,然后依次使用材质列表中的材质
- 骨骼
- 动画
Quaternions
要点
- 计算公式
- 角度的范围是 0 到 pi(为了能够和极坐标一一对应)
- rotate(v) = q v q^(-1)
- 插值:
- 将四元数a和b进行值为t的插值:
- 当a和b非常接近的时候,使用线性插值来避免过小的分母
- 通过检测 ||a-b|| 和 ||a+b|| 的大小关系来决定从a插值到b时,是从哪一侧插值
- 将四元数a和b进行值为t的插值:
角色动作
要点
- to-parent transform; to-root transform; to-world transform
- 注意vertices是在root空间定义的,所以要先转换到其所在骨骼的bind空间
- 顶点融合(skinning)
- 顶点增加数据:4个1byte的(或更多)骨骼点索引、权重
- 对顶点的normal、position等进行加权求和
本书终于完了!
0 0
- 周笔记(11/52)
- 周笔记(8/52)
- 周笔记(9/52)
- 周笔记(12/52)
- 周笔记(16/52)
- 周笔记(17/52)
- 周笔记(18/52)
- 周笔记(20/52)
- 周笔记(21/52)
- 周笔记(25/52)
- 周笔记([26~30]/52)
- 笔记(11月)
- Java笔记(11)
- 笔试笔记(11)
- 苹果开发 笔记(52)
- sqli-lab学习笔记(学习笔记)(11-20)
- 周笔记(3/52) - DX11 - Lighting/Texturing/Blending/Stenciling
- 周笔记(4/52) - XD - 过年回家画画呐
- C++代码笔记(1)string搜索操作——find()
- SpringMVC静态资源的配置问题------三种解决方式
- spark streaming 接收 scoket 输出
- 如何向开源社区提问题 #545
- 关于Fragment中的onAttach方法
- 周笔记(11/52)
- CCF CSP试题 201312-3最大的矩形
- Hibernate13
- cmd命令之跳转目录
- cf 757A Gotta Catch Em' All! (水题)
- 内核驱动的静态加载
- 计算机科学与技术学习心得
- Android新特性介绍,ConstraintLayout完全解析
- 如何修改element.style内联样式;