纹理是怎样显示在模型上的
看完games101的第8和9章,就会很好理解这些内容。三维世界中的模型是由点组成三角形,进而组成复杂的模型。每个面都有不同的颜色(像素),可以用纹理来贴上去,最后在形成在屏幕上。
立方体例子
如何把2d的图片包到3d的模型上面?
把3d物品展开成平面(展UV),和小时候做包装纸那样
Blender零基础入门教程15【材质篇】EP3.2 纹理坐标与映射节点详解 颜色渐变 - YouTube
什么是UV贴图?
UV 贴图是一种将 3D 模型表面纹理映射到 2D 平面上的技术。在 3D 模型制作过程中,UV 贴图通常用于将纹理图像应用到模型表面,以增加模型的细节和真实感。
2D纹理贴图只有x、y 坐标,那它是如何贴到xyz的3D模型上的呢?
这张贴图并不是直接产生的,而是展开 3D 对象得到UV贴图,贴图中每个点不仅保存颜色信息还保存了要映射到模型的坐标信息。
如何得到一张UV纹理?
-
将 3D 模型表面划分为多个面,并将每个面映射到 2D 平面上,形成 UV 网格。
-
将 UV 网格导出为图像文件,通常是一个包含多个小图像的纹理图像。
-
使用图像软件编辑纹理图像。
-
将纹理图像应用到 3D 模型上表面上,以增加模型的细节和真实感。
角色
那么对于角色模型这种复杂的模型展开uv之后是怎样的?
游戏公司制作角色模型是在3dmax中制作模型,并且上好色,然后导出这张贴图,这张贴图并不是美术直接画出来的。
How to Remap the UV Textures of a 3D Scan in BodyPaint 3D / Cinema 4D - 3D Scan Expert
为什么低模和立方体流畅?
立方体展开
游戏模型展开后有非常多的多边形
模型的上色(shading)就是遍历全部的顶点进行上色
而低模顶点数大约只占高模的10%,性能提升90%
minmap如何降低消耗
快速的近似正方形采样,存储体积只占1/3
UV中的0,1
UV中的值是从0~1,这是一个约定
假设把小图贴到大图上,如何保证坐标的转换?就要设定一个标准,也就是(0,1)
10x10 -> 1024x1024的,10个像素上的颜色都是一样的
1024x1024 -> 10x10,10像素点挤在一个像素点上,再取平均值造成失真
天空盒的原理
立方体或球体,向每个方向发射检测光
相关资料
使用google 搜索以下关键字就可找到有关图片
3d model texture mapping
Triangle Mesh Model