纹理是怎样显示在模型上的
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/18185486
看完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
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
2021-05-10 Unity的asm笔记
2020-05-10 less快速入门
2016-05-10 Windows系统上的.Net版本和.NETFramework的C#版本