使用具有动态纹理的DirectXTK创建3d卡

问题描述 投票:0回答:1

我正在尝试制作纸牌游戏。我想要一副纸牌,其中纸牌的背面是固定的纹理,而正面是动态的,即它上面有一些文本字段以及图片。我创建了一个3x2x0.16大小的盒子来代表我的卡。我可以加载固定纹理,但在网上找不到任何代码示例,这些示例演示如何在框的一侧加载固定纹理,而在另一侧加载动态纹理。谁能给我指出一些例子。我主要使用DirectXTK,但也可以从任何DirectX代码中找出来。DirectX11是我正在使用的DirectX的版本。

也欢迎任何有关此操作的建议。

谢谢

c++ textures directx-11 directxtk
1个回答
0
投票

生成卡的最简单方法是根据渲染的数量和所需的大小,在启动时通过使用渲染到纹理来生成面。有效地绘制动态卡面的方式与在世界上绘制它们的方式完全相同,但是使用正交投影矩阵和空白的2D纹理对象作为渲染目标。一旦有了这些,就将这些“动态”纹理缓存在std::map中,并在绘制特定卡时将它们绑定。

如果您的脸较小,或者要保存在纹理内存中,则可以将多个卡面缝合在一起,形成一张大的纹理,然后使用一些着色器缩放逻辑来引用该页面的一个小节以渲染特定的纹理。这样,您就可以组装仅包含该特定游戏中使用的面孔的“卡片组”,从而可以从GPU RAM中逐出其他卡片。

© www.soinside.com 2019 - 2024. All rights reserved.