语义
语义是用来做什么的?
用来告诉Unity这个变量是干嘛用的,Unity给Shader传数据时,比如遇到half4 c这样一个变量,那该给这个变量传哪个数据呢?顶点坐标,颜色还是法线方向?
在不说明的情况下是无法确定的,如果写成类似:half4 c: 顶点坐标; 这种形式,就很明确了。
程序输入会涉及的语义:
POSITION: 用模型空间顶点坐标填充变量
NORMAL: 用模型空间法线方向填充变量
TANGENT: 用模型空间切线方向填充变量
COLOR: 用模型颜色填充变量
TEXTURE0: 用模型的第一套纹理坐标(uv)填充变量
TEXTUREn: 用模型的第n套纹理坐标(uv)填充变量
顶点着色器输入会涉及的语义:
SV_POSITION: 该变量存放了裁剪空间中的顶点坐标,SV_开头的为系统数值语义
COLOR0: 该变量存放的数据意义用户可自定义,一般是存放颜色信息
TEXTURE0: 该变量存放的数据意义用户可自定义,一般是存放纹理坐标(uv)信息
片元着色器输出会涉及的语义:
SV_TARGET: 将输出值存储到渲染目标中,等同于dx9的COLOR,SV_开头的为系统数值语义
参考
《Shader入门精要》5.2,5.4
语义 - Win32 apps | Microsoft Learn
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端