为什么我的模型不能连续点亮?


9

我使用Blender创建了一个基本的纹理立方体模型来进行建模,然后将其导入Unity。我放了一些照明灯后,看起来很难看。一排纹理立方体上的光线不连续:

在此处输入图片说明

更奇怪的是,组成地板的砖块上的灯光连续的。我究竟做错了什么?

这是没有纹理的外观:

在此处输入图片说明

如果我不知道这些是完美的立方体,我会说表面上有轻微的弯曲。我也尝试减轻纹理,但这也无济于事:

https://dl.dropbox.com/u/45620018/lighter%20texture.PNG

我只是简单地从Blender中导出模型,而没有设置任何法线或类似的东西。但是,对于地板砖模型,我也没有做任何特别的事情。

检查法线,它们似乎指向正确的方向。

在此处输入图片说明

我也没有真正看到两个模型之间的区别。在纹理面板上,我还将投影设置为平坦:

在此处输入图片说明

我检查了Blender中的不同面板,“对象数据”面板上唯一与法线相关的选项是“自动平滑”,默认情况下处于关闭状态:

在此处输入图片说明


如果禁用纹理化,是否可以正常使用?
msell 2012年

Answers:


7

从没有纹理的图片来看,我很确定问题是您的多维数据集模型的法线不适当。您需要告诉Blender,您的立方体边缘是要锐利而不是光滑的-您现在拥有的是立方体,其作用类似于球的六边近似。

我不知道Blender,所以我无法确切告诉您如何完成此操作,但是它可能被称为“平坦”而不是“平滑”的面孔或法线,或者可能有一种“折断”特定边缘的方法。您的地板砖模型似乎具有正确的法线,因此也许您应该看到它的不同之处。


2
您是对的,我不得不告诉Blender使边缘清晰。我可以使用EdgeSplit修改器来实现。(wiki.blender.org/index.php/Doc:2.4/Manual/Modifiers/Generate/...
nosferat

您只需在Blender中选择所有面,然后通过左侧菜单(由“ T”激活的一个)为其赋予“平面”底纹。或者,在Unity中,您可以选择Blender导入层次结构的顶部,选择要计算的法线(而不是导入的法线),然后选择平滑角度(选择60之类的值将为您带来所需的效果)。我认为这不是真正的法线问题,法线很好,否则您将在Unity(或Blender(如果启用背面剔除)中)看不到任何东西。
Shivan Dragon

4

关于可能是什么问题的一些建议:

a)您是否检查了网格的所有面法线是否都指向正确的方向?在Blender中执行此操作非常简单)

b)您是否应用了正确的UV贴图?Unity根据您在Blender中的设置方式导出所有纹理数据。查看Blender中的“纹理”面板,尤其是“纹理”下的“映射”面板(理想情况下,应将其设置为UV。

(请注意,附件或发布项目文件链接(例如问题中的Dropbox或Google云端硬盘链接)的政策是什么?如果我只能看到所有文件,则修复起来应该很简单。)


2
要回答您的附件问题,在Stack Exchange上,不建议使用指向单个问题的文件的外部链接,因为它们往往会消失。图像应上传到我们自己的主机(通过编辑器中的“上传”按钮),以便SE团队可以确保它们始终存在。没有针对非图像的特殊支持(例如,用于此问题的Blender文件),但是最好找到替代方法,因为它变得更像是“请调试我的超大代码”,除了原始的申请者,与SE的目标背道而驰。
凯文·里德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.