递归火山软件开发平台

标题: [着色.源码]基础示例 [打印本页]

作者: hcwanz    时间: 2024-1-7 15:01
标题: [着色.源码]基础示例
本帖最后由 hcwanz 于 2024-1-11 14:53 编辑

像素画板模块 - 火山平台俱乐部 - 火山软件开发平台 - Powered by Discuz! (voldp.com)
本篇用于讲解着色器的诸多内置方法。
源码基本译自:The Book of Shaders:
示例源码: (, 下载次数: 1)
>>>>>>几何方法<<<<<<                                                                                                                                    长度(length)--------沙发
距离(distance)------沙发
点积(dot)------------五楼
>>>>>>常用方法<<<<<<
取正(abs)------------八楼
取符(sign)-----------九楼
退整(floor)----------十楼
进整(ceil)-----------十一
取小(fract)---------十二
取模(mod)---------十三
较小(min)----------十四
较大(max)---------十五
限制(clamp)-------十六
混合(mix)----------十七
跃阶(step)---------十八
线阶(smoothstep)十九
>>>>>>指数方法<<<<<<
幂(pow)------------二十
幂然(exp)----------二一
对然(log)----------二二
幂二(exp2)--------二三
对二(log2)--------二四
根(sqrt)-----------二五
根倒(inversesqrt)二六
>>>>>>>角度与三角方法<<<<<<
角度(degreees)-没有
弧度(radians)---没有
正弦(sin)--------二七
余弦(cos)-------二八
正切(tan)-------二九
反正弦(asin)---三十
反正切(atan)---三一
反余弦(acos)---三二



作者: hcwanz    时间: 2024-1-7 15:03
本帖最后由 hcwanz 于 2024-1-8 18:19 编辑

长度与距离方法
(, 下载次数: 67)
效果图:

(, 下载次数: 67)



作者: 承易    时间: 2024-1-7 15:17
易语言用?火山PC用?火山安卓用?
作者: hcwanz    时间: 2024-1-7 15:26
承易 发表于 2024-1-7 15:17
易语言用?火山PC用?火山安卓用?

[视窗]这个前标表示是火山视窗,[安卓]表示火山安卓。易语言在另一个区
(, 下载次数: 68)

作者: hcwanz    时间: 2024-1-7 16:24
本帖最后由 hcwanz 于 2024-1-8 18:19 编辑

点积:
(, 下载次数: 65)
(, 下载次数: 71)


作者: cloud261    时间: 2024-1-8 02:16
怎么看着像glsl一比一翻译的,玩这种高技术性的,估计不喜欢用中文吧
作者: hcwanz    时间: 2024-1-8 09:59
本帖最后由 hcwanz 于 2024-1-8 10:00 编辑
cloud261 发表于 2024-1-8 02:16
怎么看着像glsl一比一翻译的,玩这种高技术性的,估计不喜欢用中文吧

倒是想过直接搞spir-v,可惜那个库用不明白。
着色器属于是真正的数学语言了,别说中文了,英文都不想用,shadertoy的作者都是一个字母一个字母写的。 (, 下载次数: 67)

作者: hcwanz    时间: 2024-1-8 12:07
本帖最后由 hcwanz 于 2024-1-8 18:19 编辑

取正

(, 下载次数: 70)
(, 下载次数: 71)


作者: hcwanz    时间: 2024-1-8 12:13
本帖最后由 hcwanz 于 2024-1-8 18:20 编辑

取符
正数返回1;负数返回-1。
(, 下载次数: 68) (, 下载次数: 69)


作者: hcwanz    时间: 2024-1-8 12:17
本帖最后由 hcwanz 于 2024-1-8 18:20 编辑

退整
1.0--1.999返回1.0;2.0--2.999返回2.0;3.0--3.999返回3.0;……。
(, 下载次数: 68)
(, 下载次数: 65)


作者: hcwanz    时间: 2024-1-8 12:32
本帖最后由 hcwanz 于 2024-1-8 18:17 编辑

进整
0.1-0.999返回1.0;1.001-0.999返回2.0;……。
(, 下载次数: 51)
(, 下载次数: 49)



作者: hcwanz    时间: 2024-1-8 12:35
本帖最后由 hcwanz 于 2024-1-8 18:17 编辑

取小
返回小数部分,1.2返回0.2;1.0返回0.0;2.0返回0.0。
(, 下载次数: 53)
(, 下载次数: 54)



作者: hcwanz    时间: 2024-1-8 12:46
本帖最后由 hcwanz 于 2024-1-8 18:18 编辑

取模                                                                                                                                                                                                                    和求余类似,只是返回值符号由参数二决定。
(, 下载次数: 53)

(, 下载次数: 55)




作者: hcwanz    时间: 2024-1-8 12:50
本帖最后由 hcwanz 于 2024-1-8 18:18 编辑

较小
返回参数一和参数二里较小的那个。
(, 下载次数: 56)
(, 下载次数: 52)


作者: hcwanz    时间: 2024-1-8 12:53
本帖最后由 hcwanz 于 2024-1-8 18:18 编辑

较大
返回参数一和参数二中较大的那个。
(, 下载次数: 54)
(, 下载次数: 55)


作者: hcwanz    时间: 2024-1-8 12:55
本帖最后由 hcwanz 于 2024-1-8 18:18 编辑

限制
将返回值限制在参数二和参数三之间。
(, 下载次数: 54)
(, 下载次数: 55)


作者: hcwanz    时间: 2024-1-8 13:29
本帖最后由 hcwanz 于 2024-1-8 18:18 编辑

混合
基于参数三,混合参数一、参数二。
公式:返回==参一*(1.0-参三)+参二*参三;
(, 下载次数: 51)
(, 下载次数: 53)
将代码里的注释去掉后:
(, 下载次数: 53)


作者: hcwanz    时间: 2024-1-8 13:38
本帖最后由 hcwanz 于 2024-1-8 18:18 编辑

跃阶                                                                                                                                                                                                                  参一>参二,返回0;参一<参二,返回1。

一维
(, 下载次数: 53)

(, 下载次数: 51)
二维
(, 下载次数: 54)
(, 下载次数: 54)


作者: hcwanz    时间: 2024-1-8 13:50
本帖最后由 hcwanz 于 2024-1-8 18:19 编辑

线阶
线阶(参一,参二,参三);
    若(参一==0.5,参二==2.5)
    则若(参三<参一)     返回0;
    则若(参三>参二)     返回1;
    则     返回    混合(参一,参二,单位(参三));
一维
(, 下载次数: 55)
(, 下载次数: 52)
二维
(, 下载次数: 54)
(, 下载次数: 55)


作者: hcwanz    时间: 2024-1-8 13:56
本帖最后由 hcwanz 于 2024-1-8 18:19 编辑


幂(参一,参二)
返回参一的参二次方
》》》》计次循环(参二)
》》》》》参一=参一*参一;
(, 下载次数: 56)
(, 下载次数: 54)


作者: hcwanz    时间: 2024-1-8 17:55
本帖最后由 hcwanz 于 2024-1-8 18:16 编辑

幂然                                                                                                                                                                                              粗 幂然(粗 参一)

然指自然常数e
返回值==e^参一
(, 下载次数: 57)

(, 下载次数: 52)



作者: hcwanz    时间: 2024-1-8 18:08
本帖最后由 hcwanz 于 2024-1-8 18:16 编辑

对然
然指自然常数e
粗 对然(粗 甲)
甲=e^返回值
其中返回值称为,以e为底甲的对数。
(, 下载次数: 55)
(, 下载次数: 56)


作者: hcwanz    时间: 2024-1-8 18:12
本帖最后由 hcwanz 于 2024-1-9 14:30 编辑

幂二
粗 幂二(粗 参一)
返回值==2^参一  //返回值为2的参一次方
(, 下载次数: 55)
(, 下载次数: 56)


作者: hcwanz    时间: 2024-1-8 18:15
本帖最后由 hcwanz 于 2024-1-9 14:30 编辑

对二
粗 对二(粗 参一)
参一==2^返回值  //返回值名为:以2为底,参一的对数。
(, 下载次数: 66)
(, 下载次数: 65)

作者: hcwanz    时间: 2024-1-8 19:55
本帖最后由 hcwanz 于 2024-1-9 14:29 编辑


粗 根(粗 参一)//取平方根
参一==返回值*返回值
(, 下载次数: 69)
(, 下载次数: 67)


作者: hcwanz    时间: 2024-1-8 20:13
本帖最后由 hcwanz 于 2024-1-9 14:29 编辑

根倒
粗 根倒(粗 参一)//取平方根的倒数
返回值==1/根(参一)
(, 下载次数: 68)
(, 下载次数: 67)

作者: hcwanz    时间: 2024-1-9 14:32
正弦
(, 下载次数: 68)
(, 下载次数: 67)

作者: hcwanz    时间: 2024-1-9 14:35
余弦
(, 下载次数: 67)
(, 下载次数: 66)

作者: hcwanz    时间: 2024-1-9 14:37
正切

(, 下载次数: 69)
(, 下载次数: 67)

作者: hcwanz    时间: 2024-1-9 14:38
反正弦
(, 下载次数: 68)
(, 下载次数: 67)

作者: hcwanz    时间: 2024-1-9 14:40
反正切
(, 下载次数: 61)
(, 下载次数: 61)

作者: hcwanz    时间: 2024-1-9 14:41
反余弦
(, 下载次数: 60)
(, 下载次数: 60)





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4