C# 对球体C进行纹理处理#

C# 对球体C进行纹理处理#,c#,geometry,texturing,C#,Geometry,Texturing,我目前正在使用基于托管DX和C#的全景查看器 我创建了一个球体网格,现在我想用地球地图对其进行纹理处理 我在纹理对象中加载纹理,但当我查看结果时,纹理在经度和纬度上重复 我想我需要一个像素着色器,但我必须说,我不知道如何创建一个 有人能帮我吗 谢谢大家! 如果它是纹理化的,但只是重复,那么它不是着色器问题。 应校正夹紧或U/V坐标。 着色器只是帮助您向纹理渲染添加材质,而不是修改纹理的布局(U/V) 这是关于如何设置平面网格的UV的粗略尝试: 我希望这能有所帮助。如果要在网格上放置(例如)地球地

我目前正在使用基于托管DX和C#的全景查看器

我创建了一个球体网格,现在我想用地球地图对其进行纹理处理

我在
纹理
对象中加载纹理,但当我查看结果时,纹理在经度和纬度上重复

我想我需要一个像素着色器,但我必须说,我不知道如何创建一个

有人能帮我吗


谢谢大家!

如果它是纹理化的,但只是重复,那么它不是着色器问题。 应校正夹紧或U/V坐标。 着色器只是帮助您向纹理渲染添加材质,而不是修改纹理的布局(U/V)

这是关于如何设置平面网格的UV的粗略尝试:

我希望这能有所帮助。如果要在网格上放置(例如)地球地图,则网格比纹理大

顶点顺序和它们的连接方式并不相关,我只是写了一些顶点索引来说明这只是一个完整的网格

您使用的是一个球体,它不是平面的,因此有一个完整的理论,关于如何将非平面曲面投影到平面上

这将进一步帮助您:


出于好奇:为什么要使用MDX?它不是被XNA取代了吗?你试过Unity3D吗?像这样的事情几乎是开箱即用的。。。只需在球体内放置一个摄影机,并在编辑器中调整值。。。也许我错过了什么。我只是很好奇:)

如何计算网格的纹理坐标?您好,谢谢您的回答。我使用MDX是因为我得到了规范。你的回答帮助了我!谢谢
Mesh
+----------+----------+----------+ V=1.00
|0        3|3        5|5        7|
| vertices |          |          |
|          |          |          |
|1        2|2        4|4        6|
+----------+----------+----------+ V=0.66
|          |          |          |
|          |          |          |
|          |          |          |
|          |          |          |
+----------+----------+----------+ V=0.33
|          |          |          |
|          |          |          |
|          |          |          |
|          |          |          |
+----------+----------+----------+ V=0.00
U=0        U=0.33     U=0.66     U=1.00