博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Unity] Shader - CG语言 流程控制语句
阅读量:7087 次
发布时间:2019-06-28

本文共 1500 字,大约阅读时间需要 5 分钟。

CG语言中:

不支持 switch 语句(可以写,但不能很好的执行。)

循环语句中, 循环次数不能大于 1024 ,否则会报错。

 

If...ELSE 条件判断语句:

 

if (true) {

} else {

}

 

If...ELSE IF...ELSE... 嵌套语句

 

if (true) {

} else if (true) {

} else {

}

 

While语句:

 

while (bool) {

}

 

Do...While语句:

 

do {

} while (bool)

 

For 循环语句:

for (int i=0; i < xxx; i++) {

}

 

示例代码

 

Shader "Custom/001" {    SubShader {        pass {            CGPROGRAM            #pragma vertex vert            #pragma fragment frag            void vert(in float2 objPos: POSITION, out float4 pos: POSITION, out float4 col: COLOR) {                pos = float4(objPos,0,1);                if (pos.x < 0 && pos.y < 0) {                    col = float4(1,0,0,1);                } else if (pos.x < 0)  {                    col = float4(0,1,0,1);                } else if (pos.y > 0) {                    col = float4(1,1,0,1);                } else                    col = float4(0,0,1,1);            }             void frag(inout float4 col: COLOR) {                int i = 0;                while (i < 10) {                    i++;                }                if (i == 10)                    col = float4(0,0,0,1);                i = 0;                do {                    i++;                } while (i < 10);                if (i == 10)                    col = float4(1,1,1,1);                for (i=0; i < 10; i++) {                }                if (i == 10)                    col = float4(0.5,0.5,0,1);            }            ENDCG        }    }}

 

转载于:https://www.cnblogs.com/yangyxd/p/5403838.html

你可能感兴趣的文章
善用VS中的Code Snippet来提高开发效率
查看>>
EXTJS学习系列提高篇:第六篇(转载)作者殷良胜,更换皮肤
查看>>
Metro style App ContextMenu Summary
查看>>
新做了一个项目,一个人做的,关于数据传输的项目(架构说明)
查看>>
T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
查看>>
[转载]3GP文件格式研究
查看>>
GCD处理多线程同步操作 韩俊强的博客
查看>>
Java中JTree的简单案例
查看>>
Docker 三剑客之 Docker Swarm
查看>>
8.2. 数据库部署
查看>>
Java面向对象深度
查看>>
WCF NetTcpBinding Transport安全模式(2) 默认安全配置
查看>>
基于redis的分布式锁
查看>>
How to load data into SAP HANA database
查看>>
MyBatis Generator(MBG)日志信息
查看>>
cmder git bash 使用
查看>>
关于SVG的viewBox
查看>>
脚本输出当前 “yyyy-MM-dd WeakDay Festval”
查看>>
cookies可以跨域了~单点登陆(a.com.cn与b.com.cn可以共享cookies)
查看>>
Fastboot的使用简单教程
查看>>