纹理是怎样显示在模型上的

看完games101的第8和9章,就会很好理解这些内容。三维世界中的模型是由点组成三角形,进而组成复杂的模型。每个面都有不同的颜色(像素),可以用纹理来贴上去,最后在形成在屏幕上。

立方体例子

如何把2d的图片包到3d的模型上面?

image-20240413164346450

把3d物品展开成平面(展UV),和小时候做包装纸那样

image-20240413164733931

Blender零基础入门教程15【材质篇】EP3.2 纹理坐标与映射节点详解 颜色渐变 - YouTube

什么是UV贴图?

UV 贴图是一种将 3D 模型表面纹理映射到 2D 平面上的技术。在 3D 模型制作过程中,UV 贴图通常用于将纹理图像应用到模型表面,以增加模型的细节和真实感。

2D纹理贴图只有x、y 坐标,那它是如何贴到xyz的3D模型上的呢?

这张贴图并不是直接产生的,而是展开 3D 对象得到UV贴图,贴图中每个点不仅保存颜色信息还保存了要映射到模型的坐标信息。

如何得到一张UV纹理?

  1. 将 3D 模型表面划分为多个面,并将每个面映射到 2D 平面上,形成 UV 网格。

  2. 将 UV 网格导出为图像文件,通常是一个包含多个小图像的纹理图像。

  3. 使用图像软件编辑纹理图像。

  4. 将纹理图像应用到 3D 模型上表面上,以增加模型的细节和真实感。

角色

那么对于角色模型这种复杂的模型展开uv之后是怎样的?

游戏公司制作角色模型是在3dmax中制作模型,并且上好色,然后导出这张贴图,这张贴图并不是美术直接画出来的。

How to Remap the UV Textures of a 3D Scan in BodyPaint 3D / Cinema 4D - 3D Scan Expert

img

为什么低模和立方体流畅?

立方体展开

image-20240413205830766

游戏模型展开后有非常多的多边形

image-20240413205901068

模型的上色(shading)就是遍历全部的顶点进行上色

而低模顶点数大约只占高模的10%,性能提升90%

minmap如何降低消耗

快速的近似正方形采样,存储体积只占1/3

UV中的0,1

UV中的值是从0~1,这是一个约定

假设把小图贴到大图上,如何保证坐标的转换?就要设定一个标准,也就是(0,1)

10x10 -> 1024x1024的,10个像素上的颜色都是一样的

1024x1024 -> 10x10,10像素点挤在一个像素点上,再取平均值造成失真

天空盒的原理

立方体或球体,向每个方向发射检测光

image-20240413210712550

相关资料

使用google 搜索以下关键字就可找到有关图片

3d model texture mapping

Triangle Mesh Model

什么是UV映射和解包? (conceptartempire.com)

Maya 帮助 | UV | Autodesk

posted @ 2024-05-10 23:24  赵青青  阅读(37)  评论(0编辑  收藏  举报