Unity 之 Material (材质)渲染3D对象的重要组件

这篇具有很好参考价值的文章主要介绍了Unity 之 Material (材质)渲染3D对象的重要组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

unity创建material,Unity,unity,游戏引擎

介绍

在Unity中,Material(材质)是一种用于渲染3D对象的重要组件。Material定义了对象的外观,包括其颜色、纹理、光照属性和反射等。以下是关于Material的详细介绍:

  1. 创建Material
    要创建一个Material,通常需要一个着色器(Shader)以及一个或多个纹理。您可以通过以下步骤来创建Material:

    • 在Unity的Project视图中,右键单击Assets文件夹或其子文件夹。
    • 选择"Create" > “Material”,然后为Material命名。
    • 选择所需的Shader,并为其分配纹理、颜色和其他属性。
  2. Shader
    Shader是一种程序,定义了如何渲染3D对象的每个像素。Unity提供了各种内置Shader,包括Standard Shader、Unlit Shader、PBR Shader等。您还可以编写自定义Shader来实现特定的渲染效果。

  3. 属性
    Material具有许多属性,可以在Inspector窗口中编辑。一些常见的属性包括:

    • Main Color:定义物体的基本颜色。
    • Main Texture:指定用于覆盖物体的纹理图像。
    • Normal Map:用于模拟表面细节和凹凸度的法线贴图。
    • Metallic:控制表面金属性的属性。
    • Smoothness:控制表面光滑度的属性。
    • Emission:定义自发光效果的属性。
  4. Texture Maps
    Texture Maps是Material中常用的纹理,它们包括:

    • Albedo Texture:定义物体的颜色和反射属性。
    • Normal Map:模拟表面凹凸度。
    • Metallic Map:定义物体金属和非金属部分。
    • Roughness Map:控制表面粗糙度。
    • Emission Map:定义自发光部分。
    • Specular Map:控制高光反射。
    • Ambient Occlusion Map:模拟遮蔽效果。
  5. 使用Material
    Material通常附加到3D对象的Renderer组件上。一旦Material与对象关联,对象就会根据Material的属性和Shader来渲染。您可以将Material应用于对象的Renderer组件,也可以在脚本中动态更改Material的属性。

  6. 脚本中的Material操作
    您可以在脚本中访问和更改Material的属性,以实现动态效果。以下是一个示例,演示如何更改Material的颜色:

    using UnityEngine;
    
    public class ChangeMaterialColor : MonoBehaviour
    {
        public Material material;
        public Color newColor = Color.red;
    
        void Start()
        {
            // 获取对象上的Renderer组件的Material
            material = GetComponent<Renderer>().material;
    
            // 更改Material的颜色属性
            material.color = newColor;
        }
    }
    
  7. 批处理
    在渲染大量对象时,使用相同的Material可以提高性能,因为Unity可以对相同Material的对象进行批处理,从而减少渲染调用。

Material是Unity中实现视觉效果的关键部分之一。通过选择合适的Shader和调整Material的属性,您可以创建各种各样的外观,从实时光照到卡通风格。了解如何使用Material对游戏对象进行渲染是游戏开发中的重要技能。

一些代码例子

示例1:更改Material颜色

此示例演示如何在Unity中更改物体的Material颜色。我们将使用脚本来实现这一点。

using UnityEngine;

public class ChangeMaterialColor : MonoBehaviour
{
    public Material material; // 将要更改的Material
    public Color newColor = Color.red; // 新颜色

    void Start()
    {
        // 获取对象上的Renderer组件的Material
        material = GetComponent<Renderer>().material;

        // 更改Material的颜色属性
        material.color = newColor;
    }
}

注释:

  • 我们首先声明了一个Material变量material,用于存储将要更改的Material。
  • 使用Start方法,在游戏对象启动时获取对象上的Renderer组件的Material。
  • 然后,我们将Material的颜色属性设置为新颜色newColor

示例2:更改Material的主纹理

此示例演示如何更改物体的Material的主纹理,以改变其外观。

using UnityEngine;

public class ChangeMaterialTexture : MonoBehaviour
{
    public Material material; // 将要更改的Material
    public Texture newTexture; // 新纹理

    void Start()
    {
        // 获取对象上的Renderer组件的Material
        material = GetComponent<Renderer>().material;

        // 更改Material的主纹理属性
        material.mainTexture = newTexture;
    }
}

注释:

  • 同样,我们首先声明了一个Material变量material,用于存储将要更改的Material。
  • 然后,我们声明一个Texture变量newTexture,用于存储新纹理。
  • Start方法中,我们获取对象上的Renderer组件的Material,并将其主纹理属性设置为新纹理newTexture

这两个示例演示了如何使用脚本更改Material的属性,包括颜色和主纹理。这些技术可用于实现游戏中的动态效果和互动性。您可以根据需要扩展这些示例以满足特定的需求。文章来源地址https://www.toymoban.com/news/detail-712550.html

到了这里,关于Unity 之 Material (材质)渲染3D对象的重要组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity制作二次元卡通渲染角色材质

    Unity制作二次元材质角色   大家好,我是阿赵。接下来准备开一个系列,讲一下二次元卡通角色的渲染。   先来看看成品,我从网上下载了著名游戏《罪恶装备》里面的一个角色模型。在没有做材质之前,把贴图赋予上去,给一个Unlit材质,这个角色的样子大概是这样的

    2024年02月14日
    浏览(34)
  • Unity | HDRP高清渲染管线学习笔记:材质系统Lit着色器

    目录 一、Lit着色器 1. Surface Options 2. Surface Inputs(表面输入) 3. Transparency Inputs 二、HDRP渲染优先级 目录 一、Lit着色器 1. Surface Options 2. Surface Inputs(表面输入) 3. Transparency Inputs 4. Emission Inputs(自发光输入) 二、HDRP渲染优先级        我们可以把现实世界中的物体分成不

    2024年02月12日
    浏览(38)
  • Unity制作二次元卡通渲染角色材质——5、脸部的特殊处理

    Unity制作二次元材质角色 回到目录 大家好,我是阿赵。 这里继续讲二次元角色材质的制作。这次是讲头部的做法。 之前在分析资源的时候,其实已经发现了这个模型的脸部法线有问题,导致在做光照模型的时候,脸部很奇怪。 把fbx文件导入到3DsMax里面,可以发现 这个模型

    2024年02月09日
    浏览(30)
  • 【unity shader】水体渲染基础-基于texture distortion的流体流动材质

    当液体静止时,它在视觉上与固体没有太大区别。 但大多数时候,我们的性能不一定支持去实现特别复杂的水物理模拟, 需要的只是在常规的静态材料的表面上让其运动起来。我们可以对网格的 UV 坐标实现动态变化,从而让表面的纹理效果实现变形的动态变化。 1.1. uv实时

    2024年02月03日
    浏览(41)
  • 最新Unity DOTS Instancing合批:如何针对单个渲染实体修改材质参数

    最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去的动画时间。但是在做大规模战斗控制的时候,有10000+的小

    2024年01月22日
    浏览(34)
  • Unity制作二次元卡通渲染角色材质——4 、内外描边和细节添加

    Unity制作二次元材质角色 回到目录 大家好,我是阿赵。 这里继续讲二次元角色材质。这次打算讲一下描边和细节的添加。 外描边的做法也不止一种,比如后处理方法的偏导数ddx/ddy之类的,也能整个屏幕的求出边缘。但一般来说单模型渲染常用的描边方式,是写多一个Pass,

    2024年02月08日
    浏览(25)
  • Unity制作二次元卡通渲染角色材质——3、高光反射与ILM贴图

    Unity制作二次元材质角色 回到目录 大家好,我是阿赵。 这里继续来讲二次元角色的材质。上次讲了光影的色阶化问题,这次继续讲光照模型效果的问题。 之前我们说过,光照模型的最后效果是: 环境色+漫反射+高光+反射。 这里我们可以先忽略环境光,然后之前做了漫反射

    2024年02月11日
    浏览(48)
  • Unity中从3D模型资产中批量提取材质

    如何使用 只需在“项目”窗口中创建一个名为“编辑器”的文件夹,然后在其中添加此脚本即可。然后,打开Window-Batch Extract Materials,配置参数并点击“ Extract! ”。 在Unity 2019.1+上,可以将默认材质重映射条件配置为自动检测模型资源中嵌入的重复材质并为它们提取单个材

    2024年02月04日
    浏览(37)
  • Unity制作二次元卡通渲染角色材质——2、色阶化光影的多种做法对比

    Unity制作二次元材质角色 回到目录 大家好,我是阿赵。 这里继续讲二次元角色渲染。之前说过,最基本的卡通渲染,包含了色阶化光影和描边二个元素。所以这里先来说一下色阶化光影的多种做法对比。 从上一篇文章里面可以知道,这个模型提供了2套贴图,分别是baseMap和

    2024年02月14日
    浏览(21)
  • 【瑞模网】Unity3D基础:贴图与材质球

    一、贴图与材质球 材质(Material):物体的质地,物体看起来是什么做的 贴图(Texture):普通的材质图片 贴图 + 着色器(Shader) = 材质球 所谓着色器(Shader)实际上就是一小段程序

    2023年04月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包