texture-mapping - 使用 3Dsmax 进行纹理烘焙
问题描述
我正在为使用 3DSmax 软件的纹理烘焙过程而苦苦挣扎。我有一个带有 2 个图像纹理的白色 3D 网格。我正在尝试获取漫反射贴图(请参阅 target_diffuse_map.jpg)。为此,我执行以下步骤:
1) 将 image-texture1 和 image-texture2 影响到对象的 face1 和 face2。
2)在烘焙纹理时克隆对象以获得白色。
3)打开UVM。
4) 渲染Texture得到漫反射贴图。
5)纹理+白色在克隆物体上的投影。
请在我制作的这个小视频中找到这些步骤:https ://drive.google.com/file/d/1h4v2CrL8OCLwdeVtLmpQwD250cawgJpi/view
我获得了一个糟糕的采样和怪异的漫反射贴图(请参阅 received_diffuse_map.jpg)。我想要的是target_diffuse_map.jpg。
我是不是忘记了一些步骤?
感谢您的帮助。
解决方案
您需要:
- 在 Projection Modifier 中添加少量“Push”
- 在“投影选项”对话框中取消选中“使用笼子”,同时为偏移设置一个非常小的值
投影映射通过将光线从笼子上的点投射到网格上的相应模型点来工作。您根本没有将笼子推出,因此光线定义不明确;光线从一个点投射到一个完全相同的点的方向。这会导致数值错误和 z-fighting。需要有一些时间量的推动,因此每条射线的“起点”和“终点”是不同的,从而为它们提供了明确定义的行进方向。
第二个选项,而不是使用投影修改器中定义的笼子,是使用偏移方法(尽管您可能仍然需要应用投影修改器)。此方法将每条光线定义为从一个点开始,该点通过获取网格的模型点并沿法线方向向外移动固定偏移量而定义。优点是对于具有大多边形的弯曲对象,它产生的失真较小,因为系统在每个点使用平滑的着色法线。缺点是你不能在模型的不同点有不同的笼子距离,以便更好地控制。将此方法用于圆形木桶和其他具有大而平滑曲线的简单物体。
此外,由于模型的不同部分彼此非常靠近(接触)并相互嵌入,您的情况变得困难 - 即瓶口如何在瓶盖内以及瓶盖如何接触底座。对于这种情况,在获得整体 UV 映射后将对象分开,分别对每个对象单独运行投影映射,然后在图像编辑器中将这些映射重新组合在一起,这可能是有意义的。
推荐阅读
- reactjs - React Image Annotate - 覆盖函数 onExit() 的可能性
- c++ - 给定可变整数列表生成类模板的元组
- python - 错误提示“分配前引用了局部变量‘时间’”,但我没有使用名为时间的变量
- javascript - 隐藏和显示 div
- 使用 JS 的元素
- installation - 如何在 Ubuntu 20.04 上安装 OpenModelica 1.9.5?
- c# - 无法启动 OmniSharp,因为需要 Mono 版本 >=6.4.0
- ruby - Ruby - 在 ruby tcpsocket 中发送/接收大数据
- javascript - Javascript 空闲时弹出,仅在单击按钮后
- python - 在不使用 STR 的情况下将 Python 中的列表转换为数字
- javascript - 根据条件向数组添加其他对象