语义

语义是用来做什么的?

用来告诉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

 

posted @   yanghui01  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示