Unity Shader unity文档学习笔记(十三):怎么用shader修改unity自带的胶囊体 改成一个花瓶的形状

这篇博客介绍了如何通过Shader修改Unity中的胶囊体模型,将其转换为花瓶形状。主要思路是通过干预顶点坐标,利用数学函数如sin来改变XZ轴上的Y坐标,实现曲线造型。博客内容涉及CG编程、光照处理和顶点变形,适合对Unity图形编程感兴趣的读者。
摘要由CSDN通过智能技术生成

一年前遇到的面试题 怎么用shader修改unity自带的胶囊体 改成一个花瓶的形状
思路:干预顶点
写一个花瓶的曲线模型函数
把Y轴放入函数中 乘以XZ
sin函数类似效果

Shader "Unlit/VertexTest"
{
    SubShader
    {
        Pass
        {
            Tags { "LightMode"="ForwardBase" }
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work

            #include "UnityCG.cginc"
            #include "Lighting.cginc"

            struct v2f
            {
                float4 pos:POSITION;
                fixed4 color:COLOR;
            };

            v2f vert(appdata_base v)
            {
                //边界波纹效果
                v.vertex.x = sin(v.vertex.y) * v.vertex.x;
                v.vertex.z = sin(v.vertex.y) * v.vertex.z;

                v2f o;
                o.pos = UnityObjectToClipPos(v.vertex);
                float3 lDir = normalize(_WorldSpaceLightPos0.xyz); //平行光
				float3 nDir = normalize(mul(v.normal,(float3x3)unity_WorldToObject));//一个点的法线
				fixed3 diffuse = _LightColor0.rgb*saturate(dot(nDir,lDir));//点乘反映着两个向量的“相似度”,两个向量越“相似”,它们的点乘越大
                o.color = fixed4(diffuse,1);
                return o;
            }

            float4 frag(v2f IN):COLOR
            {
                return IN.color;
            }
            ENDCG
        }
    }
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值