Shader整洁之道

作者:追风剑情 发布于:2016-8-31 22:20 分类:Shader

Cg/HLSL中3种精度的数值类型 类型 精度 float 最高精度的浮点值。通常使用32位来存储 half 中等精度的浮...

阅读全文>>

标签: Shader

评论(0) 浏览(4938)

Unity提供的Cg/HLSL语义

作者:追风剑情 发布于:2016-8-30 22:23 分类:Shader

Unity支持的语义 从应用阶段传递模型数据给顶点着色器时Unity支持的常用语义 语义 描述 POSITION 模型空间中的顶点位置,通常是float4类型 ...

阅读全文>>

标签: Shader

评论(0) 浏览(4959)

Unity提供的内置文件和变量

作者:追风剑情 发布于:2016-8-30 21:40 分类:Shader

Unity的内置着色器文件可以从官网下载 https://unity3d.com/cn/get-unity/download/archive 也可以在安装目录下找到 Mac上 /Applications/Unity/Unity.app/Contents/CGIncludes Windows上 安装路径/Data/CGIncludes Unity中一些常用的包含文件 ...

阅读全文>>

标签: Shader

评论(0) 浏览(4943)

Properties语义块

作者:追风剑情 发布于:2016-8-29 23:12 分类:Shader

ShaderLab属性类型和Cg变量类型的匹配关系 ShaderLab属性类型 Cg变量类型 Color, Vector float4, half4, fixed4 ...

阅读全文>>

标签: Shader

评论(0) 浏览(5061)

顶点着色器和片元着色器之间的通信

作者:追风剑情 发布于:2016-8-29 23:06 分类:Shader

Shader "Custom/VertFragShader" { SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag struct a2v { float4 vertex : POSITION; float3 normal : NOR...

阅读全文>>

标签: Shader

评论(0) 浏览(3617)

自定义顶点着色器的输入参数

作者:追风剑情 发布于:2016-8-29 22:44 分类:Shader

Shader "Custom/VertFragShader" { SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag //使用一个结构体来定义顶点着色器的输入 struct a2v { //变量声明格式: 类型 名称 : 语义 ...

阅读全文>>

标签: Shader

评论(0) 浏览(2847)

一个简单的顶点/片元着色器

作者:追风剑情 发布于:2016-8-29 22:32 分类:Shader

Shader "Custom/VertFragShader" { SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag //POSITION: Unity定义的语义,代表模型的顶点坐标。 //SV_POSITION: Unity定义的语义,代表顶点着色器输出...

阅读全文>>

标签: Shader

评论(0) 浏览(2960)

顶点/片元着色器的基本结构

作者:追风剑情 发布于:2016-8-29 22:02 分类:Shader

Shader "Custom/VertFragShader" { Properties { // 属性 } SubShader { // 针对显卡A的SubShader Pass { // 设置渲染状态和标签 // 开始Cg代码片段 CGPROGRAM // 该代码片段的编译指令,例如: #pragma vertex ...

阅读全文>>

标签: Shader

评论(0) 浏览(2875)

Unity内置的摄像机和屏幕参数

作者:追风剑情 发布于:2016-8-28 20:49 分类:Shader

Unity提供了一些内置变量来让我们访问当前正在渲染的摄像机的参数信息。这些参数对应了摄像机上的Camera组件中的属性值。 Unity5.2内置的摄像机和屏幕参数 变量名 类型 描述 _WorldSpa...

阅读全文>>

标签: Shader

评论(0) 浏览(5384)

Unity内置的变换矩阵

作者:追风剑情 发布于:2016-8-20 14:42 分类:Shader

Unity5.2内置的变换矩阵 变量名 描述 UNITY_MATRIX_MVP 当前的模型观察投影矩阵,用于将顶点/方向矢量从模型空间变换到裁剪空间 UNITY...

阅读全文>>

标签: Shader

评论(0) 浏览(4448)

渲染流水线

作者:追风剑情 发布于:2016-8-7 11:03 分类:Shader

概念性阶段划分 应用阶段->几何阶段->光栅化阶段 应用阶段:由CPU负责输出渲染所需的几何信息(即渲染图元(rendering primitives)),渲染图元可以是点、线、三角面等,这些渲染图元被传递给几何阶段。 应用阶段大致可分为下面3个阶段: (1) 把数据加载到显存中。 (2) 设置渲染状态。 (3) 调用Draw Call ...

阅读全文>>

标签: Shader

评论(0) 浏览(5671)

屏幕特效——实现亮度、饱和度、对比度

作者:追风剑情 发布于:2016-7-17 11:08 分类:Shader

色调:    指画面上表现情感的设色及其浓淡。如:暖色调、冷色调。 饱和度: 颜色纯度,越纯越鲜艳,纯的颜色属于高度饱和,灰色属于完全不饱和。 亮度:    光线强弱决定。 对比度: 画面上的明暗差 BSC_Effect.shader Shader "Custom/BSC_Effect" { Properties { _MainTex ...

阅读全文>>

标签: Shader

评论(0) 浏览(6505)

屏幕特效——深度效果

作者:追风剑情 发布于:2016-7-17 10:21 分类:Shader

SceneDepth_Effect.shader Shader "Custom/SceneDepth_Effect" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _DepthPower ("Depth Power", Range(1, 5)) = 1 } SubShader { P...

阅读全文>>

标签: Shader

评论(0) 浏览(4215)

SurfaceOutput

作者:追风剑情 发布于:2016-4-20 9:56 分类:Shader

表面着色器(Surface Shader)的标准输出结构 struct SurfaceOutput { half3 Albedo; //反射率 half3 Normal; //法线 half3 Emission; //自发光,用于增强物体自身的亮度,使之看起来好像可以自己发光 half Specular; ...

阅读全文>>

标签: Shader

评论(0) 浏览(3906)

Texture 纹理

作者:追风剑情 发布于:2016-4-19 16:41 分类:Shader

Shader "Example/Diffuse Texture" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType" = "Opaque" } CGPROGRAM #pragma surfac...

阅读全文>>

标签: Shader

评论(0) 浏览(3358)

使用2D渐变纹理创建假的BRDF

作者:追风剑情 发布于:2016-3-27 13:38 分类:Shader

      我们可以在渐变纹理的思路上添加由光照函数提供的视角方向来创建一个高级可视化效果,利用视角方向我们能够生成一些模拟的边缘光照。       观察方向(view direction)指的是我们看向物体自身的方向。它是一个标注了方向的向量,这意味着我们可以将它和法线以及光照方向结合起来使用。这种视点向量可以为我...

阅读全文>>

标签: Shader

评论(0) 浏览(4600)

移动平台上的着色器优化

作者:追风剑情 发布于:2016-3-20 16:44 分类:Shader

在着色器编写时做一些简单的调整就可以使它在移动平台上运行得更快。它涉及的因素包括了使用approxview或者halfasview光照函数变量。我们也可以减少贴图的使用数量,甚至是应用更好的图片压缩方式。 Shader "Custom/NormalSpecularShader" { //在Properties块中添加所需的贴图。我们将使用一张单一的漫反射贴图 //(它的调光贴图包...

阅读全文>>

标签: Shader

评论(0) 浏览(4656)

着色器的优化

作者:追风剑情 发布于:2016-3-13 14:24 分类:Shader

数据类型优化 float:完整的32位单精度的数据类型,是3个类型中最慢的,同时对应的坐标类型为float2、float3、float4 half:它是低精度16位浮点类型,适合存放UV值、颜色值,比float快得多,相似的坐标类型还有half2、half3、half4 fixed:它是3个类型中最小的,可以用于光照计算、颜色,同样有坐标类型fixed2、fix...

阅读全文>>

标签: Shader

评论(0) 浏览(5277)

使用#define指令模块化地创建着色器

作者:追风剑情 发布于:2016-3-6 13:38 分类:Shader

一、创建MyCgInclude.cginc文件 #ifndef MY_CG_INCLUDE #define MY_CG_INCLUDE fixed4 _MyColor; //半兰伯特光照模型 inline fixed4 LightingHalfLambert (SurfaceOutput s, fixed3 lightDir, fixed atten) { fixe...

阅读全文>>

标签: Shader

评论(0) 浏览(2806)

创建CgInclude文件来存储光照模型

作者:追风剑情 发布于:2016-3-5 19:52 分类:Shader

一、创建MyCgInclude.cginc文件 #ifndef MY_CG_INCLUDE #define MY_CG_INCLUDE fixed4 _MyColor; //半兰伯特光照模型 inline fixed4 LightingHalfLambert (SurfaceOutput s, fixed3 lightDir, fixed atten) { fixe...

阅读全文>>

标签: Shader

评论(0) 浏览(3728)

Unity中的内置CgInclude文件

作者:追风剑情 发布于:2016-2-28 17:09 分类:Shader

你可以在Unity安装目录Editor/Data/CGIncludes/下找到内置的CgInclude文件。 在着色器对物体的渲染过程中它们各司其职,有些是处理阴影和光照的,有些是处理辅助函数的,有些是管理平台依赖关系的。 你可以访问http://docs.unity3d.com/Manual/SL-BuiltinIncludes.html来查找相关信息。 示例...

阅读全文>>

标签: Shader

评论(0) 浏览(3852)

动态更改Shader属性值

作者:追风剑情 发布于:2016-2-15 17:36 分类:Shader

一、创建脚本 using UnityEngine; using System.Collections; public class ProceduralMaterialTest : MonoBehaviour { public Color mainColor; void Start () { renderer.materials[...

阅读全文>>

标签: Shader

评论(0) 浏览(5491)

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号