本帖最后由 hcwanz 于 2024-1-7 11:23 编辑 shuimiao 发表于 2024-1-7 10:07 是cmd终端:噜阿噜 |
这又是哪个中文编程的IDE? |
厉害,支持。 |
#版 450 同 粗二 外屏幕; 同 粗二 外鼠位; 同 粗二 外鼠按; 同 粗数 外时间; //噪声方法原址:https://www.shadertoy.com/view/4sc3z2 //本方法原址:https://www.shadertoy.com/view/3tBGRm 粗三 散列33(粗三 p3){ p3 = 取小(p3 * 粗三(.1031,.11369,.13787)); p3 += 点积(p3, p3.纵横深+19.19); 返 -1.0+2.0 * 取小(粗三(p3.横+p3.纵, p3.横+p3.深, p3.纵+p3.深)*p3.深纵横); } 粗数 分形噪声三(粗三 p){ 常 粗数 K1 = 0.333333333; 常 粗数 K2 = 0.166666667; 粗三 i = 退整(p + (p.横+p.纵+p.深) * K1); 粗三 d0 = p - (i - (i.横+i.纵+i.深) * K2); 粗三 e = 跃阶(粗三(0.0), d0 - d0.纵深横); 粗三 i1 = e * (1.0 - e.深横纵); 粗三 i2 = 1.0 - e.深横纵 * (1.0 - e); 粗三 d1 = d0 - (i1 - K2); 粗三 d2 = d0 - (i2 - K1); 粗三 d3 = d0 - 0.5; 粗四 h = 较大(0.5 - 粗四(点积(d0, d0), 点积(d1, d1), 点积(d2, d2), 点积(d3, d3)), 0.0); 粗四 n = h * h * h * h *粗四(点积(d0, 散列33(i)), 点积(d1, 散列33(i + i1)), 点积(d2, 散列33(i + i2)), 点积(d3, 散列33(i + 1.0))); 返 点积(粗四(31.316), n); } /*将最大的颜色值作为混合值,同时将所有的颜色值限制在[0,1]之间*/ 粗四 提取特值(粗四 入色){ 粗数 较大值 = 较小(较大(较大(入色.红, 入色.绿), 入色.蓝), 1.0); 若 (较大值 > 1e-5){ 返 粗四(入色.横纵深/较大值,较大值); }则{ 返 粗四(0);} } /*强度最多一点几就行;距原名是dist*/ 粗数 光一(粗数 强度, 粗数 衰减, 粗数 距) { 返 强度 / (1.0 + 距 * 衰减);} 粗数 光二(粗数 强度, 粗数 衰减, 粗数 距)//距>1的时候光强于光一, { 返 强度 / (1.0 + 距 * 距 * 衰减);} //距<1的时候光弱于光一。 无 主(){ 常 粗四 色一 = 粗四(0.6, 0.26, 0.996,0.0); 常 粗四 色二 = 粗四(0.298, 0.76, 0.9,0.0); 常 粗四 色三 = 粗四(0.0627, 0.078, 0.6,0.0); 常 粗四 背景 = 粗四(0.0); 常 粗数 内径 = 0.6;//innerRadius 粗二 位置 = (像位置.横纵*2.0-外屏幕)/外屏幕.纵; ///上面是自下面优化而来。 /// 位置 = 像位置/外屏幕;//将坐标值转为易于计算的单位坐标 /// 位置 = 位置*2.0-粗二(1);//将原点设为画布中心 /// 位置.横*=外屏幕.横/外屏幕.纵;//使画出的图像永远为正,即使画布不正 粗数 角 = 反正切(位置.纵, 位置.横); 粗数 长 = 长度(位置); 粗数 饼基, 高光, 逆衰, 空洞, 色比; 粗数 径值, 距值, 噪值; ////// 饼 噪值 = 分形噪声三(粗三(位置 * 0.65, 外时间)) * 0.5 + 0.5; //用噪基混合内径,根据噪基的不同,获得的值不同 ///感觉没太大差别 /// 径值 = 混合(混合(内径, 1.0, 0.4), 混合(内径, 1.0, 0.6), 噪值); 径值 = 混合(内径+0.1,内径+0.2,噪值); //径值是一个具有长度和方向的向量,除长,去掉了径值的长度,//不全对 //将只有方向的径值与位置相乘,得到当前噪声值对位置的影响。 //然后用距离方法,得到具体的影响值。 距值 = 距离(位置, 径值 / 长 * 位置);//径值和距值越接近这里越小 饼基 = 光一(1.0, 10.0, 距值);//距值越小,饼基越大 饼基*= 线阶(径值 * 1.05, 径值, 长);//大于径值(超出内径)点的返回零 色比 = 余弦(角 + 外时间 * 2.0) * 0.5 + 0.5; ////// 高光 粗数 a = 0.0-外时间;//让高光旋转方向和饼旋转方向相同 粗二 坐标 = 粗二(余弦(a), 正弦(a)) * 径值;//高光的圆心位置 高光 = 光二(1.5, 5.0, 距离(位置, 坐标));//画一个光圆 高光*= 光一(1.0, 50.0 , 距值);//对光圆进行衰减 ////// 反向衰减 逆衰 = 线阶(1.0, 混合(内径, 1.0, 噪值 * 0.5), 长); ////// 洞//hole 空洞 = 线阶(内径, 内径+0.2, 长); ////// 色 粗四 颜色 = 混合(色一, 色二, 色比);//混合色一、二、三 颜色 = 混合(色三, 颜色, 饼基); 颜色 = (颜色 + 高光) * 逆衰 * 空洞;//组合四个组成 /// 颜色=粗四(高光);//可以在这里依次试试饼基、高光… … 颜色 = 限制(颜色, 0.0, 1.0);//将颜色限制在[0,1] 颜色 = 提取特值(颜色); 像颜色= 混合(背景, 颜色, 颜色.特); //正常混合 } |
|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )
GMT+8, 2024-11-24 02:46 , Processed in 0.085185 second(s), 22 queries .
Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc.