切线 Visualizing tangents and binormals

原创 2016年08月30日 16:29:08

Visualizing tangents and binormals


原文链接 http://docs.unity3d.com/530/Documentation/Manual/SL-VertexProgramInputs.html

Tangent and binormal vectors are used for normal mapping. In Unity only the tangent vector is stored in vertices, and the binormal is derived from the normal and tangent values.

切线和副法线向量用于法线贴图。在unity中只有切线和法线是在顶点信息中有存储的,副法线来源于法线和切线的值。


Shader "Debug/Tangents" {
SubShader {
    Pass {
        CGPROGRAM
        #pragma vertex vert
        #pragma fragment frag

        // vertex input: position, tangent
        struct appdata {
            float4 vertex : POSITION;
            float4 tangent : TANGENT;
        };

        struct v2f {
            float4 pos : SV_POSITION;
            fixed4 color : COLOR;
        };
        
        v2f vert (appdata v) {
            v2f o;
            o.pos = mul( UNITY_MATRIX_MVP, v.vertex );
            o.color = v.tangent * 0.5 + 0.5; //tangent切线
            return o;
        }
        
        fixed4 frag (v2f i) : SV_Target { return i.color; }
        ENDCG
    }
}
}



Bitangents副法线为法线和切线的叉乘,即垂直于法线和切线

Shader "Debug/Bitangents"
{


SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag


#include "UnityCG.cginc"


struct appdata
{
float4 vertex : POSITION;
float3 normal : NORMAL;
float4 tangent : TANGENT;
};


struct v2f
{
float4 color : TEXCOORD0;
float4 pos : SV_POSITION;
};



v2f vert (appdata v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
float3 bitangent = cross(v.normal,v.tangent.xyz) * v.tangent.w;     //副法线为法线和切线的叉乘,即垂直于法线和切线的线
o.color.xyz= bitangent * 0.5 + 0.5 ;
o.color.w =1.0;
return o;
}

fixed4 frag (v2f i) : SV_Target
{
fixed4 col = i.color;
return col;
}
ENDCG
}
}
}



相关文章推荐

绘制切线图插件Tangents

  • 2015年07月13日 14:32
  • 12KB
  • 下载

UVA 10674 || Tangents(求两圆的共切线

大白模板题,但是大白模板放这题会有精度误差,死Wa,看了个题解,也是从大白模板改的,全部都用了浮点误差,偷偷敲走。 两圆的共切线,根据两圆的圆心距从小到大排列,一共有六种情况。 1) 两圆完全重合...
  • FXXKI
  • FXXKI
  • 2015年04月14日 00:05
  • 419

论文提要“Visualizing and Understanding Convolutional Networks”

主要内容:提出了一种深层网络中分析特征层功能及分类器运行原理的可视化技术,通过可视化可以寻找更优的网络模型。可视化技术可以揭示网络中激活每层特征图的输入刺激,同时可以观察到训练过程中每个特征的以便诊断...

CNN入门必读经典:Visualizing and Understanding Convolutional Networks

本文主要是借助deconvnet来可视化卷积网络,这对于理解卷积网络还是非常重要的,同时本文又是13年ImageNet分类任务的冠军。 代码: https://github.com/guruucs...

[深度学习]Visualizing and Understanding Convolutional Networks阅读笔记

现在我需要用到深度学习做图像分类的任务,虽然之前对CNN有过一定的了解,但我还是第一次真正使用它来解决问题,相关论文看的也比较少,最近恶补了一下近几年比较有名的关于深度学习的论文,写到博客上总结一下,...

深度学习研究理解5:Visualizing and Understanding Convolutional Networks

Visualizing and understandingConvolutional Networks 本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主...

examples - visualizing time series data and geographic data using python

利用cartopy和pandas处理时间序列数据和地理数据。 pandas中介绍了处理日期的函数pandas.to_datetime, groupby 的使用。 cartopy初步介绍了画地理信息图的...

Visualizing and Understanding Convolutional Networks

Matthew D. Zeiler,Rob Fergus. Visualizing and Understanding Convolutional Networks.CVPR2014.论文下载 推荐一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:切线 Visualizing tangents and binormals
举报原因:
原因补充:

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