![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opengl
文章平均质量分 50
馬鹿吖
萌新初至,多多指教
展开
-
ShaderToy(四)画更好的笑脸
根据smiley可将其分为三个部分,脸部,眼睛和嘴巴。画脸部1. 首先绘制其头部,用橘黄色涂满 vec4 col = vec4(0.9, 0.65, 0.1, 1.0); // orange float d = length(uv); col.a = S(0.5, 0.49, d);2.然后绘制边缘阴影部分,从0.35至0.5部分,颜色逐渐变深。这里自制remap函数,当d靠近边缘时,降低col的a值(alpha值)透明度,并呈现透明度渐变。为了使a变化.原创 2021-09-12 09:44:16 · 313 阅读 · 0 评论 -
ShaderToy(三)画矩形
首先将上节的绘制笑脸整合为函数Smiley(uv, p, size):p为笑脸中心位置,size为笑脸尺度。float Circle(vec2 uv, vec2 p, float r, float blur){ float d = length(uv - p); float c = smoothstep(r, r-blur, d); return c;}float Smiley(vec2 uv, vec2 p, float size){ uv -=原创 2021-09-08 09:03:16 · 364 阅读 · 0 评论 -
ShaderToy(二)画笑脸
通过上一节的知识,我们可以自建circle函数来作圆形:float Circle(vec2 uv, vec2 p, float r, float blur){float d = length(uv – p);float c = smoothstep(r, r-blur, d);return c;}其中p为圆形坐标,uv-p将原点移动到了p位置,r为半径,blur为边界模糊长度。由此,我们可以画第一个圆:float c = Circle(uv, vec2(0.2, -0.1),原创 2021-09-07 20:57:39 · 232 阅读 · 0 评论 -
ShaderToy(一)入门
ShaderToyShaderToy基于C++语言,通过着色器在窗口渲染图像。我在openGL中接触过一些,教程视频选择右上角“新建”,网页默认输出一幅颜色随时间而改变的图像。uv = fragCoord/iResolution.xy ;其中fragCoord为当前片元着色器处理的候选片元窗口相对坐标信息,iResolution是窗口分辨率,uv为像素点在窗口的归一化位置,阈值为:[0,1]修改代码如下:void mainImage( out vec4 fragColor,原创 2021-09-05 17:17:26 · 1348 阅读 · 0 评论