Shader结构

Shader "Custom/BasicDiffuse" {
Properties
 {
  _EmissiveColor ("Emissive Color", Color) = (1,1,1,1)
  _AmbientColor  ("Ambient Color", Color) = (1,1,1,1)
  _MySliderValue ("This is a Slider", Range(0,10)) = 2.5
 } 
 
 SubShader
 {
  Tags { "RenderType"="Opaque" }
  LOD 200
 
  CGPROGRAM
 
  #pragma surface surf BasicDiffuse  
 
  float4 _EmissiveColor;  
  float4 _AmbientColor;
  float  _MySliderValue;
 
  inline float4 LightingBasicDiffuse (SurfaceOutput s, fixed3 lightDir, fixed atten)
  {
   float difLight = max(0, dot (s.Normal, lightDir));  
   
   float4 col;
   col.rgb = s.Albedo * _LightColor0.rgb * (difLight * atten * 2);
   col.a = s.Alpha;
   return col;
  }
 
  struct Input
  {
   float2 uv_MainTex;
  };
 
  void surf (Input IN, inout SurfaceOutput o)
  {
   float4 c;
   c =  pow((_EmissiveColor + _AmbientColor), _MySliderValue);
   
   o.Albedo = c.rgb;
   o.Alpha = c.a;
  }
 
  ENDCG
 }
 
 FallBack "Diffuse"
 
}
 
1.SubShader表示针对不同显卡的实现
2.Tags表示引擎如何认证这个SubShader
    Queue类型(指定渲染顺序队列)
        Background(1000)
        Geometry(2000)
        AlphaTest(2450)
        Transparent(3000)
        Overlay(4000)
        RenderType类型
    Opaque: 用于大多数着色器(法线着色器、自发光着色器、反射着色器以及地形的着色器)。
        Transparent:用于半透明着色器(透明着色器、粒子着色器、字体着色器、地形额外通道的着色器)。
        TransparentCutout: 蒙皮透明着色器(Transparent Cutout,两个通道的植被着色器)。
        Background: Skybox shaders. 天空盒着色器。
        Overlay: GUITexture, Halo, Flare shaders. 光晕着色器、闪光着色器。
        TreeOpaque: terrain engine tree bark. 地形引擎中的树皮。
        TreeTransparentCutout: terrain engine tree leaves. 地形引擎中的树叶。
        TreeBillboard: terrain engine billboarded trees. 地形引擎中的广告牌树。
        Grass: terrain engine grass. 地形引擎中的草。
        GrassBillboard: terrain engine billboarded grass. 地形引擎何中的广告牌草
 

3.LOD 200 (Shader Level of Detail ),描述细节程度限制

4.#pragma surface 告诉着色器将使用哪个光照模型来计算
5.Properties块定义属性必须再声明一次才能使用  
6.声明一个新的光照模型函数来创建新的光照模型,格式:Lighting<任何名字>
7.点积是两个向量空间比较,返回(-1 1)。 1表示向量方向完全相反,-1表示向量方向完全一致,0垂直。
8.Shader表现属性
    Albedo,是漫反射颜
    Normal,法线坐标
    Emission,自发光颜色
    Specular,镜面反射系数
    Gloss,控制光泽
    Alpha,控制透明
9.如果用户所有的SubShader都失败了,Unity会通过FallBack调用自己预制的Shader实现。
 

转载于:https://www.cnblogs.com/JimmyCode/p/4580350.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于Shader和分子结构,我找到了一些相关的信息。Shader是一种用来渲染图形的技术,通过自定义显卡渲染算法来实现想要的效果。在OpenGL中,对应的着色器语言是GLSL(OpenGL Shading Language)。通过Shader编程,可以实现各种渲染风格,如马赛克效果、素描风格等。 至于分子结构,根据提供的引用内容,没有直接关于分子结构的具体信息。如果您对分子结构有更具体的问题或者需要了解更多关于分子结构的知识,请提供更多相关的信息,我将尽力为您提供帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [GPU-CUDA-图形渲染分析](https://blog.csdn.net/wujianing_110117/article/details/126169766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Unity基础系列(四)——构造分形(递归的实现细节)](https://blog.csdn.net/haog87/article/details/107478679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值