美文网首页
UINTY Shader 用到的系统提供的方法

UINTY Shader 用到的系统提供的方法

作者: Y海泉 | 来源:发表于2017-05-17 09:06 被阅读0次

文章结构

因为对unity内置的函数不是很熟悉,导致写Shader速度比较慢,影响效率,所以希望通过这篇将要使用的函数方法归总,方便查阅。

Unity常用的结构体


'#'include "UnityCG.cginc"

P108 页 Unity入门精要

appdata_base 顶点位置,顶点法线,第一套纹理坐标
appdata_tan 顶点位置,顶点切线,顶点法线,第一组纹理坐标
appdata_full 顶点位置,顶点切线,顶点法线,四组纹理坐标
appdata_img 顶点位置,第一组纹理坐标
不仅如此也提供了许多有用的方法
float3 WorldSpaceViewDir(float4 v)
float3 ObjSpaceViewDir(float4 v)
float3 WorldSpaceLightDir(float4 v)
float3 ObjSpaceLightDir(float4 v)

float3 UnityObjectToWorldNormal(float3 norm)
float3 UnityObjectToWorldDir(float3 dir)
float3 UnityWorldToObjectDir(float3 dir)


'#' include "Lighting.cginc" //带有一些常量,例如摄像机的位置,可以用上面的函数直接计算
fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz;
_WorldSpaceLightPos0.xyz
_WorldSpaceCameraPos.xyz
_LightColor0.rgb


语义

POSITION,SV_POSITION, SV_Target float4
NORMAL float3
TANGENT float4 ,(x,y,z,w)w有用
TEXCOORD0, TEXCOORD1 float4
COLOR fixed4


纹理

用法
Properties{
_MainTex{"Main Tex", 2D} = "white"{}
}

pass{
sampler _MainTex;
fixed4 _MainTex_ST; // xy代表缩放值, zw代表平移值
uv = _MainTex_ST.xy * texcoord.xy +_MainTex_ST.zw
//o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
}

贴图性质

凹凸映射
因为贴图可以不仅可以存储颜色信息,换种想法也可以储存其他信息,例如凹凸贴图,将法线储存在纹理上,增加凹凸感;
1.模型空间的法线纹理
2.法线空间的法线纹理(x轴为切线,y轴为副法线,z轴为法线)

2 比 1好

相关文章

  • UINTY Shader 用到的系统提供的方法

    文章结构 因为对unity内置的函数不是很熟悉,导致写Shader速度比较慢,影响效率,所以希望通过这篇将要使用的...

  • 2018-03-17

    基础纹理 最基本的纹理采样用到的Unity Shader 内置方法: UNITY_MATRIX_MVP 当前的模型...

  • 如何禁用iOS系统方法?

    出于某种需求,我需要禁用iOS系统提供的某些系统方法。可以采用如下的方法: 一旦我们在程序中使用到了alloc、i...

  • Photoshop中图层叠加效果的算法

    在编写Shader时难免会用到颜色叠加,这里提供了PS中不同图层叠加效果的算法。 转载自 Photoshop中图层...

  • 自定义View系列教程01--常用工具介绍

    在自定义View的时候,常常会用到一些Android系统提供的工具。这些工具封装了我们经常会用到的方法,比如拖拽V...

  • OC中enumerate系列方法的使用

    忙里偷闲写篇小文。开发中经常会用到遍历方法、这里主要讲一下关于iOS系统提供的enumerate的遍历方法的使用:...

  • cocos2d::glprogram分析

    1、glprogram分析 2、实例应用,变暗、变灰shader 可见glprogram提供shader的编译、链...

  • 更改MFMessageComposeViewController

    程序中会使用到发短信功能,由于iOS的限制,导致只能调用系统短信发送,常用的方法是采用Apple提供的MFMess...

  • 创建Shader

    创建一个一个Shader程序对象需要提供先创建shader对象 创建shader要通过glCompileShade...

  • unity custom shader 102

    Trick Name of Property 在 unity 提供的默认 shader 中,properties ...

网友评论

      本文标题:UINTY Shader 用到的系统提供的方法

      本文链接:https://www.haomeiwen.com/subject/zhghxxtx.html