Unity 琐碎(2): Shader 颜色调试
Shader的调试有点蛋疼,最近在测试Image Effect中深度还原时,不知道输出的结论是否正确,后面就采取了这种策略。在物体上世界坐标位转换区间到[0,1],然后作为颜色进行输出。然后Image Effect shader中也采用类似的方式进行输出,通过颜色进行比较。需要注意的是:颜色区间,比如将世界坐标转换到颜色空间,可以按法线的方式先归一化转换到[-1,1],再转换到[0,1]。
类似的做法可以参考《Shader入门》第五章,shader源码,并且提供了一个工具,用于颜色抓取。
Shader "Unlit/ObjectTestColor"
{
	SubShader
	{
		Tags
		{
		 	"RenderType"="Opaque"
	 	}
		LOD 100
		Pass
		{
			CGPROGRAM
			#pragma vertex object_vert
			#pragma fragment object_frag
			#include "UnityCG.cginc"
			struct appdata
			{
				float4 vertex : POSITION;
			};
			struct v2f
			{
				float4 vertex : SV_POSITION;
				float4 clippos : TEXCOORD0;
				float4 worldPos : TEXCOORD1;
				float4 depth : TEXCOORD2;
			};
			v2f object_vert (appdata v)
			{
				v2f o;
				o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
				o.clippos = o.vertex ;
				o.depth.x = COMPUTE_DEPTH_01;
				o.worldPos =  mul(_Object2World, v.vertex);
				return o;
			}
			fixed4 object_frag (v2f i) : SV_Target
			{
				//NDC深度
				//fixed4 ndc = i.clippos / i.clippos.w ;
				//float d = ndc * 0.5 + 0.5 ;
				//return fixed4(d,d,d,1);
				//View空间深度
				//float viewdDepth = i.depth.x * 10;
				//return fixed4(viewdDepth,viewdDepth,viewdDepth,1)   ;
				//世界坐标
				float dis = length(i.worldPos.xyz);
			    float3 worldPos2 = i.worldPos.xyz/dis;
    		    worldPos2 = worldPos2 * 0.5 + 0.5;
				return fixed4(worldPos2,1);
			}
			ENDCG
		}
	}
	FallBack "Diffuse"
}
Unity 琐碎(2): Shader 颜色调试的更多相关文章
- Unity 琐碎(4) 可视化辅助调试Giamos
		Gizmos 类 可以在代码中绘制一些输出结果或者中间输出内容,比如计算后的包围盒等等 类变量 方法 作用 color 控制输出颜色 matrix Set the gizmo matrix used ... 
- 【浅墨Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法&颜色、光照与材质
		本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40955607 作者:毛星云(浅墨) ... 
- unity之初识shader
		自己做个总结先.当然文中很多内容都是从各位大神的文档当中看的.我只是站在巨人的肩膀上. 首先什么是shader?其实就是一个在显示屏当中的显示程序,俗称着色器.它可以定义物体在硬件显示屏当 ... 
- 【unity shaders】:Unity中的Shader及其基本框架
		shader和Material的基本关系 Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出.绘图单元可以依据这个输出来将图 ... 
- 【Unity Shaders】Shader学习资源和Surface Shader概述
		写在前面 写这篇文章的时候,我断断续续学习Unity Shader半年了,其实还是个门外汉.我也能体会很多童鞋那种想要学好Shader却无从下手的感觉.在这个期间,我找到一些学习Shader的教程以及 ... 
- unity 内置shader
		几个有用的Unity 内置shader: (一)Standard RenderingMode:Opaque为实体渲染,更改Color的透明通道不会有影响:Cutout会把图片的透明通道显示出来,非严格 ... 
- unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5
		unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5 High-performance Unity iOS/Android console built ... 
- Unity内置shader 下载
		Unity内置shader 4.3.1 版本的 其他版本可以自己修改名称 下载地址 http://download.unity3d.com/download_unity/builtin_shade ... 
- js颜色调试器
		1 /* ColorTestViewer 颜色调试器 2 3 attribute: 4 onchange: Function; //颜色改变回调; 默认null 5 6 //以下属性不建议直接修改 7 ... 
随机推荐
- 华为路由器 IPSec 与 GRE 结合实验
			二者结合的目的 GRE 支持单播.组播.广播,IPSec 仅支持单播.GRE 不支持对于数据完整性以及身份认证的验证功能,并且也不具备数据加密保护.而 IPSec 恰恰拥有强大的安全机制.达到了互补的 ... 
- Git+Gitlab+Ansible剧本实现一键部署动态网站(二)--技术流ken
			项目前言 之前已经写了一篇关于git和ansible的博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>.关于git,gitliab,ansible在我 ... 
- Linux--Introduction and Basic commands(Part one)
			Welcome to Linux world! Introduction and Basic commands--Part one J.C 2018.3.11 Chapter 1 What Is Li ... 
- Scrapy爬虫(5)爬取当当网图书畅销榜
			本次将会使用Scrapy来爬取当当网的图书畅销榜,其网页截图如下: 我们的爬虫将会把每本书的排名,书名,作者,出版社,价格以及评论数爬取出来,并保存为csv格式的文件.项目的具体创建就不再多讲 ... 
- c#连接oracle数据库 DBHelper
			闲着没事自己写了一个OracleHelper类,希望大神给点建议优化 using System; using System.Collections.Generic; using System.Linq ... 
- 从零开始学安全(七)●Linux基础命令学习笔记
			halt 关机reboot 现在重新启动su - 如果当前是普通用户,则输入这条命令切换到管理员用户(root),如果要切换到其他用户则敲入 su - 用户名 如: su - wangxin root ... 
- [android] 显示意图激活另外一个activity
			可以使用跳转的方式类似javaweb来实现界面转换 显示意图就是必须要指定开启组件的具体信息,包名,组件名,组件的class 新建一个类TwoActivity ,继承Activity类,重写onCre ... 
- Java中对象和json互相转换的工具类
			package com.Dingyu.util; import java.util.List; import com.fasterxml.jackson.core.JsonProcessingExce ... 
- JavaScript有这几种测试分类
			译者按: 也许你讨厌测试,但是你不得不面对它,所以至少区分一下单元测试.集成测试与功能测试?对吧… 原文: What are Unit Testing, Integration Testing and ... 
- 洛谷P2860 [USACO06JAN]冗余路径Redundant Paths(tarjan求边双联通分量)
			题目描述 In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1. ... 
