【新人学习渣作】渲染:从物体坐标系到世界坐标系

渲染:从物体坐标系到世界坐标系


在unity中
实现一个对网格取法线的简单着色器并把法线向量设置为颜色向量以在屏幕上显示

Shader"Custom/MyShader"{
        SubShader{
                  Pass{
                          #pragma vertex MyVertex
                          #pragma fragment MyFragment
                          #include "UnityCG.cginc"
                          struct VertexData
                          {
                                    float4 position:POSITION;
                                    float3 normal:NORMAL;
                              }
                              struct Interpolator{
                                     float4 position:SV_POSITION;
                                      float3 normal:TEXCOORD0;
                              }
                              Interpolator MyVertex(VertexData Data)
                              {
                                     Interpolator OutPut;
                                     OutPut.position = mul(UNITY_MATRIX_MVP,Data.position);//投影到屏幕上
                                     OutPut.normal =  Data.normal;
                                     return Output;
                              }
                              float4 MyFragment(Interpolator input):SV_TARGET
                              {
                                      return float4(input.normal*0.5 + 0.5,0);
                              }
                  }
        }//屎一样的缩进格式

现在来测试一下着色器
完成后创建Material在场景中任意创建几个物体并任意平移,升缩,旋转变换后将material拖拽到物体上并将material的shader选项换为shader->Custom->MyShader。在场景中测试着色器效果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值