D3D绘图一点总结
2012-04-27 20:02
239 查看
<1>. 若顶点结构中不设置颜色,也不设置顶点法线,只有位置。
绘制的时候D3D默认使用黑色来绘制三角形,所以
清空后台缓存时,若第四个参数为0x00000000则将后台缓存清空为黑色,此时会看不到绘制的图形。
<2>.
如果要禁用灯光,如下这句:
1. mDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
如果禁用灯光,那么任何的材质设置都不会有效果。
设置环境光强度
2. mDevice->SetRenderState(D3DRS_AMBIENT, 0xffffffff);
关于这两句代码(编号为1和2),又有几种情况:
1)1为FALSE时,启用2,那么会获得一个环境光照明,此时设置材质无效(渲染对象为白色),纹理可以正常显示(如果 有纹理)。
2)1为TRUE时,启用2,材质设置有效,会影响渲染结果,纹理可以正常显示。
3)1为FALSE时,禁用2,材质设置失效,纹理可以正常显示。
4)1为TRUE时,禁用2,材质设置无效,纹理不可正常显示。 开启了光照但是没设置任何光源,导致纹理也显示不出来。
结论:当开启光照时,必须指定一种光源才能使渲染对象正确绘制(渲染状态设置的环境光或者其他3种类型的光源)。
struct Vertex { Vertex(){} Vertex(float x, float y, float z) { _x = x; _y = y; _z = z; } float _x, _y, _z; static const DWORD FVF; }; const DWORD Vertex::FVF = D3DFVF_XYZ;
绘制的时候D3D默认使用黑色来绘制三角形,所以
Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0);
清空后台缓存时,若第四个参数为0x00000000则将后台缓存清空为黑色,此时会看不到绘制的图形。
<2>.
如果要禁用灯光,如下这句:
1. mDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
如果禁用灯光,那么任何的材质设置都不会有效果。
设置环境光强度
2. mDevice->SetRenderState(D3DRS_AMBIENT, 0xffffffff);
关于这两句代码(编号为1和2),又有几种情况:
1)1为FALSE时,启用2,那么会获得一个环境光照明,此时设置材质无效(渲染对象为白色),纹理可以正常显示(如果 有纹理)。
2)1为TRUE时,启用2,材质设置有效,会影响渲染结果,纹理可以正常显示。
3)1为FALSE时,禁用2,材质设置失效,纹理可以正常显示。
4)1为TRUE时,禁用2,材质设置无效,纹理不可正常显示。 开启了光照但是没设置任何光源,导致纹理也显示不出来。
结论:当开启光照时,必须指定一种光源才能使渲染对象正确绘制(渲染状态设置的环境光或者其他3种类型的光源)。
相关文章推荐
- android 绘图的一点总结
- drawRect:一点绘图知识总结
- ajax无刷新绘图技术总结
- 从SQL Server移植到Access MDB数据库的一点总结
- 总结的一点OSI七层模型知识
- dedecms的一点小问题总结
- 关于伪静态学习的一点总结
- 【IOS 开发学习总结-OC-64】Quartz 2D绘图(4-1)——Quartz 2D绘图基础+点线模式
- 绘图软件origin使用总结
- 序列化一点总结
- 关于Groovy里面元编程(MetaProgramming)的一点总结
- PCA降维算法总结以及matlab实现PCA(个人的一点理解)
- SolrJ学习的一点总结
- iOS app支付宝接口调用的一点总结(补充支付宝SDK&Demo下载地址)
- 关于JAVA中的static和final修饰符的一点总结
- 关于Gitlab和SourceTree以及配置SSH的一点自我总结
- 一点总结,手机应用开发前景
- 稀疏矩阵求解的一点总结
- 中小网站在域名、服务器等选择上的一点总结
- R绘图系统概要总结