找回密码
 立即注册
查看: 540|回复: 0

一、Shader基础:7、顶点里的基本操作

[复制链接]
发表于 2021-4-3 10:30 | 显示全部楼层 |阅读模式
一、空间变换

VertexOutput vert (VertexInput v) {    VertexOutput o = (VertexOutput)0; // 新建一个输出结构    o.pos = UnityObjectToClipPos( v.vertex ); // 变换顶点信息 并将其塞给输出结构    o.nDirWS = UnityObjectToWorldNormal(v.normal); // 变换法线信息 并将其塞给输出结构    return o; // 将输出结构 输出}

  • 1、顶点位置->齐次裁剪空间
    o.pos = UnityObjectToClipPos:将模型空间下的顶点转换到齐次裁剪空间。可以理解为由模型顶点信息换算而来的顶点屏幕位置。
    o.nDirWS = UnityObjectToWorldNormal:将模型空间下的法线转换到世界空间(已归一化)。
  • 2、顶点位置->世界空间
    o.posWS = mul(unity_ObjectToWorld, v.vertex);
投影


TRANSFER_VERTEX_TO_FRAGMENT(o)  增加投影。需要同时在输出结构增加LIGHTING_COORDS(0,1) ,并且增加库文件。
include "AutoLight.cginc" // 使用Unity投影必须包含这两个库文件

include "Lighting.cginc" // 同上
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 10:53 , Processed in 0.089560 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表