博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Unity] Shader(着色器)之固定管线
阅读量:6787 次
发布时间:2019-06-26

本文共 2093 字,大约阅读时间需要 6 分钟。

在Unity中,固定管线Shader的性能是最好的。

什么是固定管线呢?

固定渲染管线 —— 这是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。

 

下面是一个固定管线Shader的示例:

Shader "Sbin/ff1" {    // 固定管线    properties {        // 变量名("描述名",类型)=值        _Color("主体", color)=(1,1,1,1)        _Ambient("环境光", color)=(0.3,0.3,0.3,0.3)        _Specular("高光", color)=(1,1,1,1)        // 变量名("描述名",range(区域最小值,区域最大值)=默认值        _Shininess("高光强度",range(0,8))=4        _Emission("自发光", color)=(1,1,1,1)    }    SubShader {        pass {            //color (1, 1, 0, 1)            //color[_Color]            material {                diffuse[_Color]                ambient[_Ambient]                specular[_Specular]                shininess[_Shininess]                emission[_Emission]            }            lighting on            separatespecular on  // 镜面高光        }    }    // FallBack "Diffuse"}

 

关键字:

material : 物体材质属性

diffuse : 主体颜色

ambient : 环境光颜色

specular : 高光颜色

shininess : 高光强度, 越光滑的物体, 高光强度值应该越大。

emission : 自发光颜色

 

效果图:

 

【官方文档中的一些说明】

 

 

Properties 语法

Properties { Property [Property ...] }

Numbers and Sliders 数字和区域滑块

name ("display name", Range (min, max)) = numbername ("display name", Float) = numbername ("display name", Int) = number

Colors and Vectors 颜色和顶点

name ("display name", Color) = (number,number,number,number)name ("display name", Vector) = (number,number,number,number)

Textures 纹理

name ("display name", 2D) = "defaulttexture" {}name ("display name", Cube) = "defaulttexture" {}name ("display name", 3D) = "defaulttexture" {}

Example (示例)

// properties for a water shaderProperties{    _WaveScale ("Wave scale", Range (0.02,0.15)) = 0.07 // sliders    _ReflDistort ("Reflection distort", Range (0,1.5)) = 0.5    _RefrDistort ("Refraction distort", Range (0,1.5)) = 0.4    _RefrColor ("Refraction color", Color) = (.34, .85, .92, 1) // color    _ReflectionTex ("Environment Reflection", 2D) = "" {} // textures    _RefractionTex ("Environment Refraction", 2D) = "" {}    _Fresnel ("Fresnel (A) ", 2D) = "" {}    _BumpMap ("Bumpmap (RGB) ", 2D) = "" {}}
 

 

转载于:https://www.cnblogs.com/yangyxd/p/5348668.html

你可能感兴趣的文章
网络知识必备关于TCP/IP 安全问题转载
查看>>
第一个“服务器”
查看>>
cisco ios 恢复方法
查看>>
linux下find命令的使用
查看>>
除了FTP备份之外 你该试一试多备份
查看>>
CCNA学习笔记之Dynamips使用
查看>>
JavaScript 基础语法总结
查看>>
MySQL 主从复制与读写分离概念及实践
查看>>
我的友情链接
查看>>
【JAVA】字符串去空格
查看>>
CentOS操作系统中HTTP服务安装
查看>>
JBPM6教程-10分钟玩转JBPM工作台
查看>>
JS:证件检查类
查看>>
Nginx和Tomcat的管理脚本
查看>>
一种基于主客体模型的权限管理框架
查看>>
为什么我写的page页面无法渲染
查看>>
Impala/Hive现状分析与前景展望
查看>>
PHP读取PDF内容配合Xpdf的使用
查看>>
【Linux 驱动】设备驱动程序再理解
查看>>
加密解密的概念以及DES加密算法的实现
查看>>