软件光栅器的设计思想
来源:互联网 发布:淘宝怎么改评价 编辑:程序博客网 时间:2024/05/16 12:02
软件光栅器的设计思想
排版有点乱,图片稍后补上
一、场景管理…压根没管
二、资源载入
三、好了…前戏完了..重点来了
四、顶点处理:四大坐标系转换
1、世界坐标矩阵:
推导:物体经过缩放,旋转,平移:
|sx | | (1-(ry*ry+rz*rz)*2) (rx*ry-rw*rz)*2 (rx*rz+rw*ry)*2 | | 1 | | m00=(1-(vyvy+vzvz)*2)*s.x; m01=(vxvy+svz)*2*s.x; m02=(vxvz-svy)*2*s.x; |
| sy | * | (rx*ry+rw*rz)2 (1-(rx*rx+rz*rz)*2) (ry*rz-rw*rx)*2 | | 1 | = | m10=(vxvy-svz)*2*s.y; m11=(1-(vxvx+vzvz)*2)*s.y; m12=(vyvz+svx)*2*s.y; |
| sz | | (rx*rz-rw*ry)*2 (ry*rz+rw*vx)*2 (1-(rx*rx+ry*ry)*2) | | 1 | | m20=(vxvz+svy)*2*s.z; m21=(vyvz-svx)*2*s.z; m22=(1-(vxvx+vyvy)*2)*s.z; |
| 1 | | 1 | | tx ty tz 1 | | m30=t.x; m31=t.y; m32=t.z; m33=1|
所以世界坐标矩阵:
Mworld = Mscale * Mrotate * Mtranslate
2、视图矩阵(View矩阵)
Camera的UVN(U:右方 V:上方 N:后方):切线空间:xyz
视图矩阵其实就是:将Camera平移回原点(Inverse Translation) 再 旋转对齐 坐标轴 的变换
Inverse Translation(摄像机当前坐标(px,py,pz))
|1 | | 1 |
T = | 1 |
| -px -py -pz 1|
假设Camera当前的UVN为(u,v,n)
那么他的逆向矩阵:
|u| |a00 a01 a02| |1 0 0|
|v| * |a10 a11 a12| = |1 1 0|(对齐Z轴)
|n| |a20 a21 a22| |1 0 1|
|ux vx nx|
R = |uy vy ny|
|uz vz nz|
将其化为四维矩阵:
| ux vx nx |
| uy vy ny |
R = | uz vz nz |
| 1 |
所以视图矩阵Mview
| ux vx nx | | uy vy ny |
Mview = T*R = | uz vz nz |
| -px -py -pz 1 |
3、投影透视矩阵(剪裁矩阵)
首先引入Homogeneous Coordinates(齐次坐标)
(x,y,z) - >(x,y,z,w(0
- 软件光栅器的设计思想
- 软件光栅器二之3D渲染流水线的设计和坐标系的选择
- 网管软件的设计思想
- 软件光栅化渲染器(一)
- 软件光栅化渲染器(二)
- 软件光栅化渲染器(三)
- 软件光栅化渲染器(四)
- 软件光栅化渲染器(五)
- 软件光栅化渲染器(六)
- 软件光栅化渲染器(七)
- 软件光栅化渲染器(八)
- 软件光栅化渲染器(九)
- 软件光栅化渲染器(十)
- 软件光栅化渲染器一
- 软件光栅化渲染器二
- 软件架构设计的思想与模式
- 软件开发设计思想
- 软件开发设计思想
- 移动平台上基于物理的着色 节选翻译
- Unreal Engine 4 PBR节选翻译 -------- Real Shading in Unreal Engine 4
- Physically-Based Shading at Disney节选翻译
- EFFECT C++总结
- EffectCookBook笔记Chapter4-11
- 软件光栅器的设计思想
- "Android 屏幕适配"-Android面试必问"精华技能点"汇总
- disney BRDF代码解释
- TangentSpace的法线转换到ViewSpace
- SHADOWMAP
- Shadow Map ———— PCF(percentage-closer filtering)
- liunx误删文件回复方式
- Shadow Map ———— PCSS(percentage-closer Soft Shadow)
- 如何在CodeBlocks中添加头文件graphics.h