Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Directx 翻译的问题_Directx - Fatal编程技术网

Directx 翻译的问题

Directx 翻译的问题,directx,Directx,我正在写一个汽车拉力赛游戏。对于道路建模,我使用“PositionNormalTextured”顶点类型,对于汽车建模,我使用网格。汽车是固定的,道路在它下面移动,我有一个设备,我用它渲染汽车和道路。现在我想左右移动汽车,但汽车和道路一起移动。我应该怎么做才能移动 汽车在不移动的情况下左右行驶?如何进行渲染?你是怎么翻译的 如果将平移添加到世界矩阵,然后进行渲染并同时移动,则不会设置不同的世界矩阵 您的代码应该是这样的: RenderCar(); TranslateRoadBack( speed

我正在写一个汽车拉力赛游戏。对于道路建模,我使用“PositionNormalTextured”顶点类型,对于汽车建模,我使用网格。汽车是固定的,道路在它下面移动,我有一个设备,我用它渲染汽车和道路。现在我想左右移动汽车,但汽车和道路一起移动。我应该怎么做才能移动

汽车在不移动的情况下左右行驶?

如何进行渲染?你是怎么翻译的

如果将平移添加到世界矩阵,然后进行渲染并同时移动,则不会设置不同的世界矩阵

您的代码应该是这样的:

RenderCar();
TranslateRoadBack( speed );
TranslateRoadSideways( amount ); 
RenderRoad();
这样可以在世界原点渲染汽车。当汽车向前或侧向移动时,你会移动汽车下方的轨道。但是请注意,汽车和道路是分别渲染的

同样值得注意的是,这是一个解决方案。你可以保持道路静止并移动汽车(这可能看起来更符合逻辑,取决于你的思维方式),但如果你想让摄像机留在汽车后面,那么你也需要移动摄像机

编辑:我回答你的评论,你只是再次设置D3DTS_世界。调用DrawIndexed基元(DIP)时,它使用当前设置的矩阵。如果更改矩阵,则再次调用DIP,在新DIP调用中呈现的数据将使用新矩阵


(注意:这适用于DrawPrimitive(DP)调用,与DrawIndexedPrimitive调用一样多,但您应该更喜欢DIP而不是DP,因为它允许卡不使用刚转换的索引重新转换顶点。)

Doh应该对另一个问题提出关闭请求。请在将来的Hesam中使用编辑功能。如何设置另一个世界矩阵?(如您所知,Transform calss有World、World1、World2和World3)