CityMaker 8二次开发之贴图2贴图时是增加还是减少uv的数值?

如何做纹理映射,实际上就是如何把一张贴图上的点与模型上面上的点想对应起来。计算过程用到向量相关知识,因为都是在二维平面上来操作的。举个例子:

如下图:


如果要把一张图贴在一个面上,看右边的图,绿色框是模型,黑色框是贴图,要把黑色框贴好,像左边图一样。那么c到c'是如何处理呢?

如果把c和c'简单的设置为想关联,就会出现拉伸了,就像一根橡皮被拉伸成1.5倍的情况。左边的图并没有拉伸过。这里也许需要知道一个重要的原理:

uv的取值范围是在[0,1],但是如果超出了这个范围,citymaker api中就会处理成重复(当然,事先得设置

gviTextureWrapMode为gviTextureWrapRepeat)。


那c也c'显示不是拉伸情况,只能是1:1的情况,然后超出的部分,由自动重复的贴图自己来填充就OK了!

一张图说明原理:



---------------------

关于matiral的gviTextureWrapMode枚举:

gviTextureWrapMode表示纹理坐标的计算方式。一般纹理坐标0-1,如果超出这个范围,这两个枚举项就会起作用。 

枚举值: 
gviTextureWrapRepeat  
重复模式 
 
gviTextureWrapClampToEdge  
截取模式(默认值) 

猜你喜欢

转载自blog.csdn.net/bdbox/article/details/80805653