




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章Direct3D渲染技巧,主讲:苏振扬,课前回忆,示例程序:g_pd3dDevice-SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_MODULATE);g_pd3dDevice-SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);g_pd3dDevice-SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_DIFFUSE);g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_DISABLE);,D3DTSS_SELECTARG2,D3DTSS_SELECTARG1,D3DTSS_SELECTARG1,D3DTSS_MODULATE,主要内容,8.1Alpha混合8.2Direct3d雾化效果8.3模板测试,8.1Alpha混合,8.1Alpha混合,进行Alpha混合操作时,首先绘制那些不需要进行融合的物体,然后将需要进行混合的物体按照相对于摄像机的深度值进行排序;最后,按照自后往前的顺序逐个绘制将要进行融合运算的物体。,8.1Alpha混合,Alpha混合原理Color=(RGBsrc*Ksrc)OP(RGBdst*Kdst)Color:Alpha混合后的颜色RGBsrc:当前计算得到的,要与后台缓存进行混合的像素颜色Ksrc:源混合因子RGBdst:当前处于后台缓存中的像素颜色值Kdst:目标混合因子OP通过D3DBLENDOP枚举常量指定,默认为D3DBLENDOP_ADD。,8.1Alpha混合,RGBsrc=?,RGBdst=?,背景颜色(红色)、漫反射颜色(蓝色)、纹理(颜色),8.1Alpha混合,Alpha混合公式中的源混合系数和目标混合系数是通过D3DBLEND枚举常量指定。typedefenumD3DBLENDD3DBLEND_ZERO=1,D3DBLEND_ONE=2,D3DBLEND_SRCCOLOR=3,D3DBLEND_INVSRCCOLOR=4,D3DBLEND_SRCALPHA=5,D3DBLEND_INVSRCALPHA=6,D3DBLEND_DESTALPHA=7,D3DBLEND_INVDESTALPHA=8,D3DBLEND_DESTCOLOR=9,D3DBLEND_INVDESTCOLOR=10,D3DBLEND_SRCALPHASAT=11,D3DBLEND_BOTHSRCALPHA=12,D3DBLEND_BOTHINVSRCALPHA=13,D3DBLEND_BLENDFACTOR=14,D3DBLEND_INVBLENDFACTOR=15,D3DBLEND_SRCCOLOR2=16,D3DBLEND_INVSRCCOLOR2=17,D3DBLEND_FORCE_DWORD=0 x7fffffff,D3DBLEND,*LPD3DBLEND;,8.1Alpha混合,g_pd3dDevice-SetRenderState(D3DRS_BLENDOP,D3DBLENDOP_ADD);/设定混合方法g_pd3dDevice-SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);/设定源混合因子。D3DBLEND_SRCALPHA为当前绘制像素的Alpha值。g_pd3dDevice-SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);/设定目标混合因子,D3DBLEND_INVSRCALPHA为1减去当前绘制像素的Alpha值。Color=(RGBsrc*Alphasrc)+(RGBdst*(1-Alphasrc),8.1Alpha混合,当前像素Alpha值的设定。g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_SELECTARG1);g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_DIFFUSE);g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_SELECTARG1);g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);,8.1Alpha混合,g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_MODULATE);,8.2Direct3d雾化效果,雾化效果原理Color=f*Colorsence+(1-f)*ColorfogColor最终经过雾化处理的颜色Colorsence物体原来的颜色Colorfog程序中定义的雾的颜色f雾化因子,8.2Direct3d雾化效果,雾化因子随距观察点的距离而衰减,其衰减规律取决于雾化模式。D3DFOG_NONED3DFOG_LINEAR,需要设置雾化开始和结束距离D3DFOG_EXP,需要设置雾的浓度D3DFOG_EXP2,需要设置雾的浓度,8.2Direct3d雾化效果,Direct3D采用了两种方法进行雾化处理:顶点雾化和像素雾化。顶点雾化由渲染状态D3DRS_FOGVETREMODE控制。像素雾化,由渲染状态D3DRS_FOGTABLEMODE控制。,8.2Direct3d雾化效果,1.激活雾化效果g_pd3dDevice-SetRenderState(D3DRS_FOGENABLE,true);2.设置雾化模式g_pd3dDevice-SetRenderState(D3DRS_FOGVERTEXMODE,D3DFOG_EXP);3.设置雾化参数g_pd3dDevice-SetRenderState(D3DRS_FOGCOLOR,D3DCOLOR_XRGB(45,50,170);staticfloatfogDensity=0.02f;g_pd3dDevice-SetRenderState(D3DRS_FOGDENSITY,*(DWORD*),8.3模板测试,8.3模板测试,模板测试过程模板测试使用模板参考值、模板掩码、模板比较函数以及当前像素在模板缓存中对应的模板值作为参数。如果通过了模板测试,绘制像素,如果为通过测试,则不绘制该像素,并按未通过模板测试的设定更改模板缓存。,8.3模板测试,模板缓存d3dpp.AutoDepthStencilFormat=D3DFMT_D24S8;D3DFMT_D15S1D3DFMT_D24S8D3DFMT_D24X4S4D3DFMT_D24FS8,8.3模板测试,1.模板参考值我们可用D3DRS_STENCILREF绘制状态改变该值g_pd3dDevice-SetRenderState(D3DRS_STENCILREF,0 x0);2.模板掩码模板掩码用于屏蔽模板参考值或者当前像素模板值g_pd3dDevice-SetRenderState(D3DRS_STENCILMASK,0 xffffffff);3.模板写掩码指定写入模板缓存中的掩码,默认为0 xffffffffg_pd3dDevice-SetRenderState(D3DRS_STENCILWRITEMASK,0 xffffffff);,8.3模板测试,4.模板值我们不能显式地单独设置模板值,但是可以对模板缓存进行清空操作。此外,还可以用模板的绘制状态控制要写入模板缓存的内容。typedefenumD3DSTENCILOPD3DSTENCILOP_KEEP=1,D3DSTENCILOP_ZERO=2,D3DSTENCILOP_REPLACE=3,D3DSTENCILOP_INCRSAT=4,D3DSTENCILOP_DECRSAT=5,D3DSTENCILOP_INVERT=6,D3DSTENCILOP_INCR=7,D3DSTENCILOP_DECR=8,D3DSTENCILOP_FORCE_DWORD=0 x7fffffff,D3DSTENCILOP,*LPD3DSTENCILOP;,8.3模板测试,5.比较运算typedefenumD3DCMPFUNCD3DCMP_NEVER=1,D3DCMP_LESS=2,D3DCMP_EQUAL=3,D3DCMP_LESSEQUAL=4,D3DCMP_GREATER=5,D3DCMP_NOTEQUAL=6,D3DCMP_GREATEREQUAL=7,D3DCMP_ALWAYS=8,D3DCMP_FORCE_DWORD=0 x7fffffff,D3DCMPFUNC,*LPD3DCMPFUNC;,8.3模板测试,7.三种测试状态D3DRS_STENCILFAILD3DRS_STENCILZFAILD3DRS_STENCILPASS,8.3模板测试,示例代码g_pd3dDevice-SetRenderState(D3DRS_STENCILENABLE,true);g_pd3dDevice-SetRenderState(D3DRS_STENCILFUNC,D3DCMP_EQUAL);g_pd3dDevice-SetRenderState(D3DRS_STENCIL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机器人在汽车喷涂中的应用研究-洞察阐释
- 肌病病理生理学探讨-洞察阐释
- 虚拟现实中的身体感知-身份与现实的边界-洞察阐释
- 矿业技术创新与资源开发效率提升-洞察阐释
- 交互式数字媒体设计-洞察阐释
- 气候变化驱动的元素再分配研究-洞察阐释
- 钩编服装供应链的可持续发展路径-洞察阐释
- 生物相容性3D打印支架设计-洞察阐释
- 跨媒体制作案例分析-洞察阐释
- 餐饮店品牌管理制度
- 新教材人教A版高中数学必修第二册全册教学课件
- 老年患者的皮肤管理
- 机械式停车设备
- 北京市西城区2020-2021学年三年级语文下学期期末试卷新人教版
- 菌种确认课件
- 医院病房楼电气安装施工方案
- 肠外营养及肠外营养制剂
- 人民币发展史
- 学校食品安全档案管理制度
- 环境法学案例分析题
- 《心理健康与职业生涯》期末考试题库含答案
评论
0/150
提交评论