fragment-shader相关内容
我正在尝试使用 OpenGL 片段着色器绘制一个三角形. 我成功地画了一个圆,但我在处理方程/逻辑或绘制三角形的代码时遇到了问题. draw_triangle(vec2 v1, vec2 v2, vec2 v3) 这是片段着色器: #version 330 核心出 vec4 frag_color;void draw_circle(vec2 shift_val,整数半径,整数颜色){ve
..
我正在尝试通过应用 从 WebGL2 中的 16 位数组缓冲区渲染灰度图像片段着色器中的窗口调平.我生成的纹理如下: let typedArray = new Int16Array(data);gl.texImage2D(gl.TEXTURE_2D,0,gl.R16I,w, h,0,gl.RED_INTEGER,gl.Short,类型数组); 并尝试使用来自以下片段着色器的数据: let f
..
我想计算2D高斯函数,输入为X,Y纹理UV坐标并获得相应的高斯值. 在获得相应的Texel的uv高斯值方面,我面临着困难. float Gaussian2D(float x,float y){浮点数x_y_squared = x * x + y * y;float stDevSquared = 2 * _2D_StandardDeviation * _2D_StandardDeviati
..
我正在用OpenGL ES 2.0开发一个Android应用,我想使用
..
我有一个SSBO,它存储屏幕上每个像素的vec4颜色值,并在主循环之前由计算着色器预先填充这些值. 我现在正在尝试将这些数据显示在屏幕上,我想这涉及使用片段着色器(尽管如果您知道一种更好的方法,我欢迎您提出建议) 因此,我试图将缓冲区或至少其中的数据获取到片段着色器,以便可以将每个片段的颜色设置为缓冲区中的相应值,但是找不到任何方法? 有人告诉我可以将SSBO绑定到片段着色器,但
..
将纹理映射到几何时,可以在 GL_NEAREST 和 GL_LINEAR 之间选择过滤方法. 在示例中,我们有一个纹理坐标被纹理元素包围,如下所示: u 和 v 值,它将返回相同的值.该值来自存储在内存中的查找表,该查找表通过 u 和 v 进行索引,而不是通过某种计算. 纹理“映射"是将表面上的特定位置与纹理空间中的特定位置相关联的过程.也就是说,您将表面位置“映射"到纹理中的位置.
..
好,所以我有一个带有一堆附件的帧缓冲区.附件是“颜色",“绽放",“速度"和“深度". 我首先使用以下代码将帧缓冲区清除为自己选择的值. //清除颜色缓冲区float colorDefaultValue [4] = {0.5,0.5,0.5,1.0};glClearBufferfv(GL_COLOR,0,colorDefaultValue);//清除Bloom Bufferfloat bl
..
我有这个基本的着色器,尽管我遇到了一些麻烦,但确实困扰我! 虽然我使用片段着色器应用纹理,但是我移动或旋转了相机,但脸上的纹理将始终面向相机(我已经添加了GIF图像作为示例). 因此,您可以在上面的图像上看到,纹理始终面对相机,如果我移近一点,它也会保持其缩放比例. 我试图达到可以四处移动的目的,并且纹理将保持其位置,旋转和缩放根据面部和顶点,而不是像现在这样根据相机. 这
..
我有一些不是真正的函数,但是它们比常规处理要快得多,它们是简单的抛物线函数. 在图形处理器上,这会比内置图形窦功能更快吗? float par (float xx){////// sinus approximation half xd =((fmod(abs(xx), 2.4)) - 1.2); if ( fmod (abs(xx) , 4.8
..
我正在尝试使用Three.js r.58普通着色器制作置换贴图.我可以正确地移动它,但是即使我使用了computeTangents(),照明也似乎并没有遵循位移后的法线. 当我关闭位移时,我看到默认法线肯定很有趣.这是一个球体的顶视图,从侧面照亮(白点标记为pointLight): 这是一个演示页面: http://meetar.github.io/three.js- normal-m
..
我正在使用单个Quad和片段着色器在WebGL中绘制圆/椭圆,以便以独立于分辨率的方式绘制它们(边缘距离抗锯齿) 这是我当前的片段着色器: '#extension GL_OES_standard_derivatives : enable', 'precision mediump float;', 'varying vec2 coord;', 'vec4 circleColor = ve
..
我想编写一个着色器,用于创建类似于用于Coverflow的图像的反射. // Vertex Shader uniform highp mat4 u_modelViewMatrix; uniform highp mat4 u_projectionMatrix; attribute highp vec4 a_position; attribute lowp vec4 a_color; attri
..
好吧我在 https://tympanus .net/codrops/2019/01/17/interactive-particles-with-three-js/只是想让他的自定义着色器正常工作.我引入了.frag和.vert文件(包含在链接中),并复制了他的设置.当我运行时出现错误 模块解析失败:意外的令牌(3:10)您可能需要一个 适当的加载程序来处理此文件类型. 这里:
..
我有一个场景,其中的对象使用Lambert材质相交,例如 jsFiddle . 现在,我需要/想要将该平面的材质切换为Shader材质,并且该平面变成背景物体,例如此处. 问题是,我可以在对象中使用不同的材质并且仍然保留相交效果吗?这是Three.js的限制,还是着色器的工作方式?还是我在渲染器/材质中缺少参数? 目前还不能选择将所有工作都转移到材质球材质上,以利用材质球.
..
我用OBJLoader加载了一个对象.我想使用带有纹理的着色器材质.我将纹理传递给材质的统一参数. 我将UV变量从顶点着色器传递到片段着色器. 但是当我使用uv坐标来映射我的纹理时,我总是得到0,0或至少这是它的样子.整个对象都带有纹理的左下角像素. 这是我的着色器:
..
我正在努力理解以下代码,其想法是在片段着色器中绘制一个简单的段.我试图分解它,但还是不知道???线. 有一个不错的解释,太好了.我在SO或Google上找不到任何东西. float lineSegment(vec2 p, vec2 a, vec2 b) { float thickness = 1.0/100.0; vec2 pa = p - a; vec2 ba =
..
我学习 WebGL.我看到该教程在JavaScript代码中包含了着色器的代码,就像通常的字符串一样.例如: var VSHADER_SOURCE = 'void main(){\n' + ' gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n' + ' gl_PointSize = 10.0;\n' + '}\n'; 我想将着色器的代码放
..
我正在尝试编写一个片段着色器,以用作特定颜色的色键过滤器(例如,使所有具有特定绿色的像素透明). 我正在编写的着色器用于通过PIXI.js的WebGL. JSFiddle: https://jsfiddle.net/IbeVanmeenen/hexec6eg/14/ 到目前为止,我已经基于我发现的着色器为着色器编写了这段代码 varying vec2 vTextureCoord;
..
我有两个图像.我必须找到强度大于0.8的第一张图像的点.同时,我必须在同一点上找到第二张图像的强度,并需要使用阈值/滑块值(范围从0到1)来调整同一点上第二张图像上的光.我做了如下.点上的黑色或深色区域的强度大于0.8. 我正在尝试使用HSV的z值. 但是,我应该能够调整image2上的光线,而不是黑色区域.我怎样才能做到这一点? public void CreateShaders() {
..
我开始学习着色器,并在ShaderToy.com上玩.对于我要制作的项目,我需要在WebGL(不是Bloom)上创建一个任意的辉光过滤器.我想计算出Alpha,然后将其用于绘制彩色发光效果或用于诸如火等的某些动画纹理. 到目前为止,我想到了一些想法: 在每个像素附近某个区域的平均Alpha值-显然很慢 在一个循环中绕每个像素绕圈,然后在另一个循环中越过距离,以根据形状与该像素的接近程
..