Rim Lighting  轮廓自发光

一:疑问:
1.总感觉在编辑器Scene状态下,脚本计算的ViewDir是我漫游的Cam,而不是项目中的MainCam啊! 然后就会造成Scene状态下轮廓自发光不停的变化。此疑问何解....

2.fixed不要用swizzle方式,即fixed.xyzw,fixed.xyxy类似;否则产生性能问题...为毛产生性能问题,float4就不会吗?

二:结果:怪怪的:

话说u3d初始数据和修改数据方便啊,   

    Properties {
_MainTex ("Texture", 2D) = "white" {}
_BumpMap ("Bumpmap", 2D) = "bump" {}
_RimColor ("Rim Color", Color) = (0.26,0.19,0.16,0.0)
_RimPower ("Rim Power", Range(0.5,8.0)) = 3.0
}

三:viewDir :

      struct Input {
float2 uv_MainTex;
float2 uv_BumpMap;
float3 viewDir; //
};

o(︶︿︶)o ,官网解释的不清晰啊...

  • float3 viewDir - will contain view direction, for computing Parallax effects, rim lighting etc.

http://my.oschina.net/u/138823/blog/181131 上说的应是对的,worldSpace下vertex对Cam的方向。

四:点乘获轮廓并自发光:

          half rim = 1.0 - saturate(dot (normalize(IN.viewDir), o.Normal));//vertex和Cam夹角越大,自发光越强烈
o.Emission = _RimColor.rgb * pow (rim, _RimPower);

五:注意half \fixed\float的正确使用:

http://www.jianshu.com/p/7b9498e58659  说的好,精度够用就行。

float 32位高精度浮点

half 16位中精度浮点

fixed 11位低精度浮点

1.颜色和单位向量,用fixed

2.其他情况,尽量使用half

3.不要将低精度向上转化,如fixed->float

4.fixed不要用swizzle方式,即fixed.xyzw,fixed.xyxy类似;否则产生性能问题...为毛产生性能问题,float4就不会吗?

u3d_shader_surface_shader_4的更多相关文章

随机推荐

  1. 在 SharePoint 2013 中选择正确的 API 集

    决定使用哪个 API 集的因素   您可以在多个 API 集中选择一个来访问 SharePoint 2013 平台.您使用哪一个 API 集取决于以下因素: 应用程序的类型. 可能的类型包括但不限于以 ...

  2. Oracle11gR2用EXP导出时报EXP-00011错误的解决

    C:\>exp businessdata/businessdata file=dropcol.dmp tables=ACSTRULE,ARREARSCFG,ARREARS_REPORT_ACCT ...

  3. Java解析Soap XML

    package com.jstrd.tipstock.webservice.jt.base; import java.io.ByteArrayInputStream; import java.util ...

  4. This version of android studio is incompatible with the gradle version used.Try disabling the instant run解决办法

    今天打开android studio又碰到一个奇怪的问题:This version of android studio is incompatible with the gradle version ...

  5. 自定义View之onMeasure()

    1.自定义View之onMeasure() 2.onMeasure实例分析

  6. Android 6 检查权限代码

    private static final int MY_PERMISSIONS_REQUEST_READ_CONTACTS= 0; //检查目前是否有权限 if (checkSelfPermissio ...

  7. Android项目编译和使用C语言动态库(so库)

    编译SO库 1.新建工程,建立jni目录用于放置c语言相关文件 2.编写Android.mk文件 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) ...

  8. 【代码笔记】iOS-翻页效果的实现

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  9. php设计模式 工厂、单例、注册树模式

    Source Code Pro字体  easyphp 命名空间:隔离类和函数,php5.3以后 //test5.php<?php namespace Test5;//命名空间必须是程序脚本的第一 ...

  10. HTML5 respond.js 解决IE6~8的响应式布局问题

    HTML5 respond.js 解决IE6~8的响应式布局问题   响 应式布局,理想状态是,对PC/移动各种终端进行响应.媒体查询的支持程度是IE9+以及其他现代的浏览器,但是IE8在市场当中仍然 ...