Direct3D或XNA渲染自定义台球
我正在做一个数学游戏,其中数字(0-99)用于提问和回答(就像标准台球,但它们通常只到15) 因此,我认为,至少通过编程生成数字比用3DSMax或类似工具模拟99个不同的球要聪明得多 我在C#/XNA中工作,但也能处理DX11/C++中的解释 我不是在寻找代码,而是在寻找一种方法:有点像这样的项目符号列表(如果这是接近正确的话):Direct3D或XNA渲染自定义台球,3d,xna,directx,direct3d,3d-modelling,3d,Xna,Directx,Direct3d,3d Modelling,我正在做一个数学游戏,其中数字(0-99)用于提问和回答(就像标准台球,但它们通常只到15) 因此,我认为,至少通过编程生成数字比用3DSMax或类似工具模拟99个不同的球要聪明得多 我在C#/XNA中工作,但也能处理DX11/C++中的解释 我不是在寻找代码,而是在寻找一种方法:有点像这样的项目符号列表(如果这是接近正确的话): 在3DS中构建一个白色且带有条纹的shphere。 或者,条纹应该是我以后添加的纹理的一部分吗 DrawModel期间更改球(如果为实心)或柄(如果为条纹)的颜
- 在3DS中构建一个白色且带有条纹的shphere。
- 或者,条纹应该是我以后添加的纹理的一部分吗
- DrawModel期间更改球(如果为实心)或柄(如果为条纹)的颜色
- 以某种方式将数字添加到球中,使其看起来与球的其余部分质量相同
谢谢你的指点 如果你想用XNA/MonoGame/ANX来解决这个问题,方法实际上取决于你使用的是Reach配置文件还是HighDef配置文件 对于reach配置文件,我建议:
(前)XNA团队在上提供了一个重新着色的例子,如果你想用XNA/MonoGame/ANX解决这个问题,方法实际上取决于你使用的是Reach配置文件还是高清配置文件 对于reach配置文件,我建议:
(前)XNA团队在提供了一个重新着色示例,您需要在纹理贴图上打印数字。此纹理实际上是一个“贴花”,粘贴到球体的一部分。实现这样一个简单的固定贴花的简单方法是编写一个像素着色器,该着色器确定点是在贴花区域的内部还是外部。如果不是,您可以进行额外的测试,以确定像素是白色背景还是彩色条纹 通过为每个顶点指定适当的纹理坐标,或者(可能更干净地)编写一个像素着色器,从三维模型坐标计算纹理坐标,可以将贴花映射到球体
无论哪种方式,球体上都会出现扭曲。我建议你看看,这些都解决了在平面图像和球体之间转换的基本问题。我特别建议您查看“gnomonic”和“正交”投影,这两种投影都很容易理解和实现。您需要在纹理贴图上打印数字。此纹理实际上是一个“贴花”,粘贴到球体的一部分。实现这样一个简单的固定贴花的简单方法是编写一个像素着色器,该着色器确定点是在贴花区域的内部还是外部。如果不是,您可以进行额外的测试,以确定像素是白色背景还是彩色条纹 通过为每个顶点指定适当的纹理坐标,或者(可能更干净地)编写一个像素着色器,从三维模型坐标计算纹理坐标,可以将贴花映射到球体
无论哪种方式,球体上都会出现扭曲。我建议你看看,这些都解决了在平面图像和球体之间转换的基本问题。我特别建议大家看一下“灵知”和“正交”投影,这两种投影都很容易理解和实现。我确实找到了这本关于如何做到这一点的相当详细的教程:我确实找到了这本关于如何做到这一点的相当详细的教程: