vertex-shader相关内容

着色器代码中的 for 循环使用硬编码数字但不使用统一变量

我在 中寻求有关 OpenGL ES 2.0 问题的帮助这个问题.似乎答案对我来说很奇怪.因此,我决定提出这个问题,希望能够了解发生了什么. 这是一段错误的顶点着色器代码: //一堆制服之类的……统一 int u_lights_active;无效的主要(){//一些代码...对于 (int i = 0; i ..
发布时间:2022-01-12 17:22:54 移动开发

将颜色渐变应用于网格上的材质 - Three.js

我有一个 STL 文件加载到我的场景中,其中一种颜色应用于 phong 材质 我想要一种将两种颜色应用到此网格材料的方法,并在 Z 轴上应用渐变效果,如下例所示.渐变花瓶]1 我有一种感觉,我可能需要引入着色器,但我还没有使用 Three.js 做到这一点. 解决方案 简单的渐变着色器,基于uvs: var scene = new THREE.Scene();var came ..
发布时间:2021-12-31 18:21:44 前端开发

检索现有着色器属性时,glGetAttribLocation 返回 -1

我正在尝试将属性传递给我的顶点着色器,但由于某种原因,它一直在第三个属性位置给我一个 -1,我要求 openGl 通过 glGetAttribLocation() 进行检索.目前它一直给我一个 -1 的 texCoord 属性,如果我切换 texAttrib 和 colAttrib(切换代码中的行),它会给我一个 -1 的颜色属性而不是纹理,我不知道为什么?由于 -1 被传递给 glVertexA ..
发布时间:2021-12-19 18:27:58 C/C++开发

GLSL - 使用自定义输出属性而不是 gl_Position

我目前正在使用着色器 (3.3) 学习 OpenGL.有一件事我似乎无法解决.我已经读过,在 OpenGL 3+ 中不推荐使用 gl_Position 和 gl_FragCoords 等内置变量,因此我想使用自己的输出变量. 所以不是这样: #version 330\nvec2 i_position 中的布局(位置 = 0);出 vec4 o_position;无效主(){gl_Posit ..
发布时间:2021-12-19 17:52:59 其他开发

具有新偏移量的three.js webgl自定义着色器共享纹理

我正在将 1024 x 1024 的纹理拆分为 32x32 的图块 * 32,我不确定是否可以使用偏移量共享纹理,或者我是否需要为每个具有偏移量的图块创建一个新纹理.. 要创建偏移量,我使用统一值 = 32 * i 并通过创建图块的每个循环实例更新统一值,所有图块似乎都是相同的偏移量?因为基本上我希望图像看起来像它的一个图像没有分解成小块.但是当前的输出在所有 32 个块上都是相同的 x,y ..
发布时间:2021-07-23 20:02:07 其他开发

在 THREE.js 中检索顶点数据

我正在使用自定义着色器创建网格.在顶点着色器中,我正在修改几何顶点的原始位置.然后我需要从着色器外部访问这个新的顶点位置,我该如何实现? 解决方案 代替变换反馈(WebGL 1.0 不支持),您将不得不使用直通片段着色器和浮点纹理(这需要加载扩展 OES_texture_float).这是在 WebGL 中在 GPU 上生成顶点缓冲区的唯一方法.WebGL 也不支持像素缓冲区对象,因此读取 ..
发布时间:2021-07-23 20:02:01 其他开发

lwjgl 3,glUniformMatrix4导致jre崩溃

我正在使用lwjgl 3并学习现代的opengl(3).我想将统一矩阵发送到顶点着色器,以便我可以应用变换.我试过了,程序因该错误而崩溃 ##Java运行时环境检测到致命错误:##EXCEPTION_ACCESS_VIOLATION(0xc0000005)at pc = 0x0000000073a9820d,pid = 8644,tid = 2760##JRE版本:Java(TM)SE运行时环境 ..
发布时间:2021-05-30 21:48:47 Java开发

为什么我的OpenGL场景在z距离为1时被裁剪?

我正在阅读GLSL Cookbook,但是我正在使用C#进行编程,因此我试图使用OpenTK转换代码.我目前正在使用Phong Shading示例,并且可以使照明的原理正常工作,但是我使用的环面模型将不会渲染与相机相距Z距离大于1的任何元素 以下是正确渲染的示例(x旋转= 0,y旋转= 0,camera.z = 1,model.z = 0)环面渲染正确 在此应用X和Y旋转(x旋转= - ..
发布时间:2021-05-11 19:06:11 C#/.NET

WebGL-在平面上显示球体

我想显示一个像在球体上但在飞机上的图像.此操作的一个示例是Mercatore投影,即从行星“展开"的地球地图.为了更好地说明自己,在球体上具有正方形纹理-不是在整个球体上,而是仅在一部分球上-我想在飞机上展示在球体上看到这种纹理的结果.我已经找到了:如何“包装"飞机在带有three.js的球面上? 但是我想使用着色器,因为它可能是最高效的,但也可能是最困难的.我很难找到合适的公式.有任何数学 ..
发布时间:2021-05-11 19:05:56 其他开发

HLSL:未对齐/打包浮动的索引

我有一个顶点着色器(2.0)做一些实例化-每个顶点都指定一个数组索引. 如果我有一个像这样的数组: float instanceData[100]; 编译器为其分配100个常量寄存器.每个常量寄存器都是一个float4,因此它分配的空间是所需的4倍. 我需要一种方法,使其仅分配25个常量寄存器,并在每个常量寄存器中存储四个值. 理想情况下,我想要一种在CPU和GPU上仍 ..
发布时间:2020-11-23 18:46:35 其他开发

HLSL:在编译时强制执行常量寄存器限制

在HLSL中,有什么方法可以限制编译器使用的常量寄存器的数量吗? 具体地说,如果我有类似的东西: float4 foobar[300]; 在vs_2_0顶点着色器中,编译器将使用超过256个常量寄存器来轻松生成效果.但是,仅保证2.0顶点着色器可以访问256个常量寄存器,因此当我尝试使用该效果时,它在运行时会以晦涩且依赖于GPU的方式失败.我宁愿让它在编译时失败. 这个问题尤 ..
发布时间:2020-11-23 18:45:26 其他开发

在着色器中旋转法线

我有一个场景,其中包含多个具有各自位置和旋转角度的模型.在给定法线的情况下,着色器将简单的双向照明应用于每个像素. 那是我的顶点着色器. #version 150 in vec3 position; in vec3 normal; in vec2 texcoord; out vec3 f_normal; out vec2 f_texcoord; uniform mat4 mode ..
发布时间:2020-11-16 01:54:36 其他开发

始终面对相机的着色器纹理

我有这个基本的着色器,尽管我遇到了一些麻烦,但确实困扰我! 虽然我使用片段着色器应用纹理,但是我移动或旋转了相机,但脸上的纹理将始终面向相机(我已经添加了GIF图像作为示例). 因此,您可以在上面的图像上看到,纹理始终面对相机,如果我移近一点,它也会保持其缩放比例. 我试图达到可以四处移动的目的,并且纹理将保持其位置,旋转和缩放根据面部和顶点,而不是像现在这样根据相机. 这 ..
发布时间:2020-11-10 20:07:50 其他开发

glsify-错误“您可能需要适当的加载程序来处理此文件类型"?

好吧我在 https://tympanus .net/codrops/2019/01/17/interactive-particles-with-three-js/只是想让他的自定义着色器正常工作.我引入了.frag和.vert文件(包含在链接中),并复制了他的设置.当我运行时出现错误 模块解析失败:意外的令牌(3:10)您可能需要一个 适当的加载程序来处理此文件类型. 这里: ..
发布时间:2020-11-10 20:06:29 前端开发