gpt4 book ai didi

时间:2019-03-09 标签:c++directxmulititextures

转载 作者:行者123 更新时间:2023-11-28 08:26:34 25 4
gpt4 key购买 nike

如何在立方体上设置多个纹理,例如立方体的正面与背面的纹理不同....

我厌倦了使用这些阶段,但它没有用。例如,如果我想做一个骰子,我的顶部是 1 面是 2 .....................

D3DXCreateTextureFromFile(d3ddev,   //Direct3D Device
_T("image.png"), //File Name
&g_texture); //Texture handle

d3ddev->SetRenderState(D3DRS_LIGHTING, FALSE); // turn off the 3D lighting
d3ddev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); // turn off culling
d3ddev->SetRenderState(D3DRS_ZENABLE, TRUE); // turn on the z-buffer
d3ddev->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);
d3ddev->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
d3ddev->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_DIFFUSE); //Ignored

d3ddev->SetTexture(1,g_texture);

D3DXCreateTextureFromFile(d3ddev, //Direct3D Device
_T("images.png"), //File Name
&texture2); //Texture handle



d3ddev->SetRenderState(D3DRS_LIGHTING, FALSE); // turn off the 3D lighting
d3ddev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); // turn off culling
d3ddev->SetRenderState(D3DRS_ZENABLE, TRUE); // turn on the z-buffer
d3ddev->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);
d3ddev->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
d3ddev->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_DIFFUSE); //Ignored

d3ddev->SetTexture(0, texture2);

最佳答案

您要做的是创建一个纹理并将骰子的 6 个面放入该纹理中。然后,对于每个面,您使用的 UV 对应于具有您想要的骰子面的纹理部分。

否则...您将绘制 6 次。每个纹理一次。

如果可以的话,前一种方法是迄今为止最好的方法。使用 DirectX 9 时绘制调用越少越好 ...

编辑:事实上,公平地说,还有其他几种方法可以做到这一点。您可以使用体积纹理并将每个骰子面放在一个切片中,然后将该切片渲染到立方体的面上。或者,您也可以使用立方体纹理并对其进行设置,以便纹理查找发生在您想要的面上。

不过,我描述的第一种方法很可能仍会为您提供最佳性能。

关于时间:2019-03-09 标签:c++directxmulititextures,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3894630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com