V
主页
京东 11.11 红包
Shader 第二讲,屏幕归一化之后的坐标变换。深入理解来回啃这一段代码将会对您的shader编程有很大的帮助
发布人
第二讲讲得比较啰嗦,主要想把自己理解的屏幕坐标归一化,给大家讲清楚。这一段代码是基础的代码,需要大家深入的反复的去琢磨,琢磨透了将会对您的shader 有一个很深的理解【大家把st -= 0.5 这一行代码注释掉,看一下我们绘制的圆,是不是跑到了左下角位置】 precision mediump float;//定义float的精度值,有三种精度值 uniform vec2 u_resolution;//包含屏幕的宽高值,xy uniform vec2 u_mouse;//鼠标的坐标值 uniform float u_time;//运行以来的时间值 //glsl ,类C的语言 void main() { //这一个代码的作用:就是把窗口坐标归一化了,使得长宽都0到1 之间 //这个目地是为了把屏幕坐标值映射到RGB,或者RGBA 的值里面去 //这一段着色器代码会在整个屏幕的每一个像素位置都会去执行 //800 * 600 gpu 同时执行的,所以,就没有先后、输入输出这一概念 //我们不能把上一步着色器程序运行的结果给下个着色器程序 vec2 st = gl_FragCoord.xy / u_resolution.xy; //一开始st中的两个值在0-1 的区间之中 //【经典案例:】这里有一个考验思维点的地方,就是st表示的是经过归一化的窗口尺寸 //也就是说现在的窗口尺寸等于是从左下角(0,0) 到右上角(1,1)的大小。 //坐标圆点在左下角,经过下面的操作,坐标圆点变在了窗口尺寸的中间点位置 //左下角左边变成了(-0.5,0.5) //*********************************** st -= 0.5; //改变成为 -0.5 到 0.5 //*********************************** st.x *= u_resolution.x / u_resolution.y;//假如x 边长要比 y边要长,防止出现椭圆的情况 //假如x/y = 1 //这里获取每个像素的长度值,因为坐标圆点(0,0)在窗口中心。 //所以,圆就会绘制在屏幕窗口中心位置 //st(-0.5,0.5) //length() 也是glsl 的提供的方法,distance() //st 代表屏幕上所有的像素坐标值 float r = length(st);//point(x,y) 到 point(x2,y2); //两种方式实现的效果一致 //smoothstep(min,max,value) 平滑阶梯函数, //第一种情况:min < max 如果 value =< min 返回0 //value >= max 返回1 // max> value > min float t = clamp((value - min) / (max - min),0,1) // 返回值=(3- 2 * t ) * t * t //第二种情况 smoothstep(max,min,value) // float c = smoothstep(.5,0.3 ,r );//smoothstep() 也是glsl 提供的方法, //0.2 到0.3 之间进行了平滑的插值 //float d = step(0.3,r); gl_FragColor = vec4(vec3(c,c,c),1.0); }
打开封面
下载高清视频
观看高清视频
视频下载器
Glsl Shader:升华经典的章节,噪声实现烟雾、云朵、模拟山脉、波浪等技术。需要大家理解数学原理,从而实现自己的噪声函数
Shader GLSL:没写几行代码但是你一定要细细品味改变你的编程思维非常重要,由st屏幕坐标改变到模型的点位坐标,从#数字孪生#智慧城市项目中交叉学习提升
Glsl Shader:【绝对不能错】我只能告诉你这一节,你绝对不能错过,20分钟让你深入了解Value noise 与 Gradient noise 噪声算法
Shader GLSL:从这一节开始都是很重要的内容,争取把每章节都讲透彻,可能废话比较多也是一番心意
Shader GLSL 着色器 学习分享
Shader GLSL:两个经典思维变化点,咱们写代码也要从全局去考虑代码,换一种角度去思考,这样很多难懂的shader代码也就变得豁然开朗了
Shader GLSL:这一集不写代码只是提醒大家要多去研究下面的这些硬件加速的函数,包含数学函数、通用函数、矩阵函数、纹理函数等,为下一届绘制图形打好基础
Shader GLSL:继续上一讲的内容,再给大家复盘一下形状是怎么来的以及看shader 代码,不能只看具体的数值,而是要看懂数值背后所代表的意义
Glsl Shader:没写代码继续上一节未讲完的内容,使用shader的时候可以把大项目先注释成小效果去实现。shader就变得简单了
shader GLSL 分享之 smoothstep(参数1,参数2,value) 内置函数,在实际项目用得非常频繁希望大家跟着我一起掌握它
Glsl Shader:shader 没有内置的随机random 方法,必须自己实现,实现的方式有多种方式。
【源码】从blender到threejs,全流程开发智慧园区
Shader GLSL:弥补大家上一讲未讲完的内容,一不小几行代码我啰里八嗦了半个多小时。不过也是句句经典哦
GLSL Shader:离开了很久一直未更新视频,因为自己也去学习去了《几何代数》《高等数学》《Webgl》《THREE.js》
GLSL Shader:没讲代码预热一下网格噪声,包括后面图像算法等,大家一定要【深入理解】前面几节课的知识
Shader GLSL:“鸡尾酒”vec 一种非常方便构建,方便大家开发使用。Mix(混合1,混合2,混合2占的百分比)可以对数值类型vec2vec34混合
VSCode真正的编程神器!
shader glsl:优化之后的simplex noise 噪声算法,但是真的很难懂。大家一定要多看几遍,欢迎留言
Glsl Shader:第9章理解扩大坐标系之后,在每组空间中绘制图案,并且使它能够旋转,放大、运动等操作
Shader GLSL:为了下一章的学习,温故咱们的三角函数,顺便提一下咱们普通函数如:mix,smoothstep等
【C/C++项目】C++俄罗斯方块游戏开发(全)!深入讲解+代码解析丨用C++还原小霸王童年经典小游戏!
Glsl Shader:千呼万唤终于到了随机数这一章,看是简单知识点太多了必须一点点的扒开,否则白学。
Shader GLSL:好久未与大家见面了,今晚简单预热一下矩阵,如何在实际项目做出特效来
深入理解Linux内核剖析版,Linux内核设备驱动架构|Linux驱动开发|嵌入式人工智能||驱动开发|系统内核开发
【全网首个JAVA原生TTD调试工具】 超好用的IDEA插件,从此不再反复Debug,从此不怕屎山代码
【限时观看】战斗系统框架原理详解:以星铁为例
STM32是世界上最简单的东西
百行代码 创造生命-Particle Life-[Unity实现]
【shader教程】第八讲P2 z-buffer算法、透明度问题、背面剔除——3D绘制补充,GMS2的shader教程
小美老师十天带学数据结构!
HLSL-UE5-Shader全面基础入门-二十一个章节
用中文写python游戏脚本第十四课: 编写DNF脚本窗口, 打包和加密
Cesium高级课程-10 webGL索引绘制drawElements
世界级编程大师Bob大叔:“35岁危机”是错觉,我们这些“老程序员”都还在,只是数量上不显眼
按键单击,双击,短按,长按(详细教程)STM32
我了个豆!这个发明可视化工具的人真他吖的是个天才,绘制神经网络图原来这么简单!——人工智能/机器学习/深度学习
翻遍整个B站,这绝对是2024讲的最好的高并发秒杀系统面试核心点,全程干货无废话,学完即可上岸!允许白嫖!
Blender4.2新手入门教程 | 四大案例(已完结)
AHK识别文本然后按键的工具