使用D3DX创建平面:点法线法与三点法

需积分: 33 203 下载量 155 浏览量 更新于2024-08-10 收藏 6.65MB PDF 举报
"《Introduction to 3D Game Programming with DirectX 10》是由Frank D. Luna编著,汤毅翻译的一本关于Direct3D 10游戏编程的书籍,主要面向中级C++程序员、熟悉非DirectX API的3D程序员以及希望了解Direct3D 10新特性的高级程序员。书中涵盖了数学基础、Direct3D编程技术以及各种特殊效果的实现,旨在帮助读者掌握交互式计算机图形编程,特别是游戏开发。 在创建平面的讨论中,介绍了两种方法。第一种是通过点和法线来创建平面,可以使用D3DX库中的D3DXPlaneFromPointNormal函数,该函数接受一个点和一个法线向量作为参数,计算并返回平面的系数。第二种方法是通过平面上的三个不共线的点来构建平面。首先计算两个边向量,然后通过这两个向量的叉乘得到平面的法线,从而确定平面的系数。 平面的表示通常使用四个系数(A, B, C, D),其中平面方程可以写作A*x + B*y + C*z + D = 0。当给定一个点P(x, y, z)和平面的法线N(x, y, z),可以解出平面方程中的D项,即D = -N·P。而通过三个不共线点P1, P2, P3,可以构造两个边向量E1 = P2 - P1和E2 = P3 - P1,通过E1×E2得到法线N,然后计算D。 书中的内容不仅限于平面创建,还包括Direct3D的初始化、3D几何体定义、摄像机设置、着色器编程、光照、纹理映射、混合、模板等基本技术,以及更高级的主题如网格渲染、地形处理、粒子系统、环境贴图映射、法线贴图映射、阴影和渲染到纹理。读者需要一定的数学背景,如代数、三角学和函数知识,以及C++和Win32 API的熟悉度,才能更好地理解和应用书中的内容。对于初级读者,建议按顺序阅读,而对于有一定经验的程序员,可以根据兴趣选择章节学习。"