09 2008 档案

摘要:------------------------pick.h------------------------#pragma once#include <vector>using std::vector;struct PickResult{DWORD dwFace; // mesh face that was intersectedFLOAT fBary1, fBary2; // barycentric coords of intersectionFLOAT fDist; // distance from ray origin to intersectionFLOAT tu, tv; 阅读全文
posted @ 2008-09-28 23:51 skydesign 阅读(592) 评论(0) 推荐(0)
摘要:渲染要进行什么操作,这随着应用技术的深入而多样化和复杂化。 一般来说,即时信息更新部分包括: 1漫游信息的更新:处理即时鼠标事件和键盘事件 由鼠标或键盘触发场景模型的平移,旋转,缩放等操作,以及摄像机的旋转,平移等。 2摄像机信息的更新:摄相机位置,朝向等信息的改变 摄像机的更新直接影响到视图矩阵和投影矩阵的实时更新 3模型信息的更新:模型位置和大小的改变以及模型的渲染 模型的平移矩阵,旋转矩阵,缩放矩阵的改变以至世界矩阵的即时更新 关于模型的渲染方面,则需处理多方面的细节:先设置渲染状态,再进行打开alpha测试,alpha裁减以及背面剔除和纹理层滤镜的设置等,接着还需设置材质和纹理等细节。 阅读全文
posted @ 2008-09-27 13:13 skydesign 阅读(333) 评论(0) 推荐(0)
摘要:几何渲染管线把顶点作为输入,可进行3种变换:世界变换,摄像机变换和投影变换,并将这些变换施展到顶点。1世界变换:一个模型的顶点要从本地坐标系统变换到世界坐标系统。世界变换包含平移,旋转,缩放的 混合变换。目的要生成世界矩阵W,可由缩放矩阵S,旋转矩阵R,平移矩阵T混合生成,一般是先放缩,再旋转,后平移,W= S * R * T. 1 平移矩阵: 通过执行函数D3DXMatrixTranslation( T , x , y , z )生成,x ,y ,z为模型在世界空间坐标。 2 缩放矩阵 通过执行函数D3DXMatrixScaling( S , x , y , z )生成,x, y, z分别 阅读全文
posted @ 2008-09-26 01:53 skydesign 阅读(1365) 评论(1) 推荐(0)
摘要:先讨论一下SDK中自带的例子:Meshes。该程序的效果是一个老虎模型绕世界坐标原点持续地旋转。程序主循环其程序流程如下:WinMain()-> InitD3D()->InitGeometry()->Render()->cleanup()其中WinMain()是程序入口,MsgProc() 处理程序的消息的回调函数,InitD3D()做程序的初始化工作InitGeometry()负责模型的加载,材质纹理的设置等,Render()负责渲染操作,在Render()中调用的SetupMatrices()设置世界矩阵,视图矩阵以及投影矩阵。在MsgProc()中调用的clean 阅读全文
posted @ 2008-09-25 14:50 skydesign 阅读(302) 评论(0) 推荐(0)