Unity Shader 基础2---编程基础

原创 2015年07月12日 15:03:08

(1)Shader文件定义

Shader 文件是通过 Shader 这个关键字开始,引用名与文件路径格式相似,对于文件名和引用名,没有必须相同的限制。
例如:

  • 文件名 Shader_Mine1
  • 定义 Shader “Custom/LearnShader_1”

(2)Shader标签(ShaderLab)

  • Properties 用于定义 Shader 的各种属性
  • SubShader 用于实现 Shader 的各种渲染
  • Fallback 用于当所有定义的 SubShader 对设备都无效时的最后备用的 Shader 的定义
  • CustomEditor 用于使用自定义的 Shader Editor 编辑栏
  • Other commands 用于对 SubShader 的特殊处理

(3)变换参数

参数名 数值表示
UNITY_MATRIX_MVP Current model * view * projection matrix
UNITY_MATRIX_MV Current model * view matrix
UNITY_MATRIX_V Current view matrix
UNITY_MATRIX_P Current projection matrix
UNITY_MATRIX_VP Current view * projection matrix
UNITY_MATRIX_T_MV Transpose of model * view matrix
UNITY_MATRIX_IT_MV Inverse transpose of model * view matrix
_Object2World Current model matrix
_World2Object Inverse of current world matrix


(4)摄像机和屏幕参数

参数名 参数类型 数值表示
_WorldSpaceCameraPos float3 World space position of the camera
_ProjectionParams float4 x is 1.0 (or –1.0 if currently rendering with a flipped projection matrix), y is the camera’s near plane, z is the camera’s far plane and w is 1/FarPlane.
_ScreenParams float4 x is the camera’s render target width in pixels, y is the camera’s render target height in pixels, z is 1.0 + 1.0/width and w is 1.0 + 1.0/height.
_ZBufferParams float4 Used to linearize Z buffer values. x is (1-far/near), y is (far/near), z is (x/far) and w is (y/far).
unity_OrthoParams float4 x is orthographic camera’s width, y is orthographic camera’s height, z is unused and w is 1.0 when camera is orthographic, 0.0 when perspective.
unity_CameraProjection float4x4 Camera’s projection matrix.
unity_CameraInvProjection float4x4 Inverse of camera’s projection matrix.
unity_CameraWorldClipPlanes[6] float4 Camera frustum plane world space equations, in this order: left, right, bottom, top, near, far.


(5)时间参数

参数名 参数类型 数值表示
_Time float4 Time since level load (t/20, t, t*2, t*3), use to animate things inside the shaders
_SinTime float4 Sine of time: (t/8, t/4, t/2, t).
_CosTime float4 Cosine of time: (t/8, t/4, t/2, t).
unity_DeltaTime float4 Delta time: (dt, 1/dt, smoothDt, 1/smoothDt).


(6)纹理参数

参数名 参数类型 数值表示
UNITY_MATRIX_TEXTURE0 float4x4
UNITY_MATRIX_TEXTURE1 float4x4
UNITY_MATRIX_TEXTURE2 float4x4
UNITY_MATRIX_TEXTURE3 float4x4
UNITY_LIGHTMODEL_AMBIENT float4 当前环境的颜色
版权声明:对于每一位看到本文的人,我先说抱歉,一切皆本人的谬论,记性不好,只好做下笔记,不是有意杀各位脑细胞。

Unity&Shader基础篇-可编程GPU图形绘制管线

Cg是最早的为可编程图形硬件设计的高级编程语言。它是英伟达和微软公司一起合作开发出来了语言,如果你非常熟悉C语言或者其他的编程语言,如C++、C#或者Java等,那对于Cg语言你将会非常容易掌握。Cg...

【Unity】Shader编程 基础总结

Shader编程一直是一个比较难入门难上手的主题,本篇对Unity Shader编程的一些基础和要点进行了总结。 包括Shader编程相关知识图谱、Shader编程相关数据类型、Shader核心结构...

Unity&Shader基础篇-绘图2D图形

一、闲言碎语唠叨两句 原文转载请注明出处点击打开链接 有了前面的几章的基础,接下来我们就可以编写一些案例来训练和强化Shader编程。本章和接下来的几章都会是在屏幕上绘制2D的图像,因此需要建立一个绘...

Unity3D基础篇----Shader学习笔记(2)

这一篇我们会学习中更为立体的Shader,即通过光照计算物体表面的漫反色,通过兰伯特光照原理实现逐顶点以及逐像素漫反色。...

Shader着色器基础——OpenGL编程笔记2

着色器(Shader) 顶点着色器(Vertex shader) 片段着色器(Fragment shader) 几何着色器(Geometry Shader) 提供通用计算能力的着色器(Compute ...
  • iblade
  • iblade
  • 2017年06月28日 18:55
  • 307

Unity&Shader基础篇-概述

最近在学习Shader,将学习的一些心得和案例以及基础知识罗列了一下。这一篇是unity之Shader的基础篇之基础,更多的是一些概念。该篇将分以下几个部分: 1、什么是Shader? 2、GPU和C...

Unity Shader学习5 —— Cg语言的基础

我们知道了进行Shader编程的Shader Lab语言有三种,分别是:OpenGL的GLSL、Direct3D的HLSL和NAVIDIA公司的Cg语言。         由于Cg编写的程序可以不作任...

Unity3D基础篇----Shader学习笔记(3)

这一篇,我们来系统的介绍一下关于Unity的光照模型。

Unity3D游戏开发从零单排(八) - Shader基础

提要       今天要说的是Unity3D中shader相关的一些知识。不会做非常细致的讲解(东西实在太多!- -),但是看完之后会知道shader是怎么用的。一些术语 在shader编程中,有一些...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity Shader 基础2---编程基础
举报原因:
原因补充:

(最多只允许输入30个字)