0

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

任何关于如何做到这一点的建议也将受到欢迎。

谢谢

4

1 回答 1

0

生成卡片的最简单方法(取决于卡片的数量和大小)是在启动时使用渲染到纹理来生成面。有效地绘制动态卡片面,就像在世界中绘制它们一样,但使用正交投影矩阵和空白 2D 纹理对象作为渲染目标。一旦你有了它,将这些“动态”纹理缓存在一个中std::map,并在绘制特定卡片时绑定它们。

如果您的面相对较小,或者您想节省纹理内存,您可以将多个卡片面拼接成一张大的纹理表,然后使用一些着色器缩放逻辑来引用该表的子部分以渲染特定纹理。有了这个,您可以组装仅包含该特定游戏中使用的面孔的卡片“甲板”,从而可以将其他人从 GPU RAM 中驱逐出去。

于 2020-06-14T12:04:03.933 回答