草庐IT

ShaderProgram

全部标签

javascript - WebGL:尽管使用相同的代码,但一切都很模糊

刚开始使用WebGL,尝试绘制一些基本线条,甚至不是多边形。我找到了几个示例,将它们复制粘贴到本地并从Firefox中运行它们,它们看起来不错:锐利、清晰的边缘。然后,我创建了自己的项目,重构了(糟糕的!)samle代码,使用RequireJS加载等,示例仍然有效,但现在我的边/点/线都是模糊的。就像一些糟糕的抗锯齿设置把一切都搞砸了。我尝试了所有方法,起初我的代码看起来有些不同(尽管功能相同,恕我直言),然后我进行了更多重构以使其看起来与示例几乎相同,但我仍然看到模糊的线条。我做错了什么?示例代码:http://jsfiddle.net/6QCNR/示例代码的实时工作版本:http:

javascript - WebGL - 无效操作 useProgram

我正在学习WebGL并在this上与照明有关的教程。我是JavaScript的新手,所以我还不太擅长调试它。我不断收到这些错误,有人知道我为什么会收到这些错误以及如何解决吗?WebGL:INVALID_OPERATION:useProgram:programnotvalidhttp://insanergamer.zxq.net/:1WebGL:INVALID_OPERATION:getAttribLocation:programnotlinkedhttp://insanergamer.zxq.net/:1WebGL:INVALID_OPERATION:getUniformLocatio

javascript - 将 JavaScript 变量发送到片段着色器

我一直在拼凑在线示例来制作Mandelbrot集片段着色器。顶点着色器基本上什么都不做,它分配gl_Position,片段着色器做一些数学运算来计算图像。但是,我有许多#define想用JavaScript控制的变量替换,但我不知道该怎么做。如果可以显示一个示例,说明如何在下面的代码中将#defineMAX_ITERATIONS200替换为JavaScript分配的变量,我可能会弄清楚其余部分。我认为我需要指定uniform或varying但不确定如何管理从JavaScript到GLSL的通信。另外我不明白aPosition如何在JavaScript和顶点着色器之间工作,我所拥有的与示

java - 网格上的纹理无法正确呈现 Libgdx

我试图在网格上放置纹理,但失败了。我正在尝试渲染somethinglikethis,wheretexturecanbeseen但我得到this,在那里我几乎看不到三角形。我正在运行以下代码:publicclassGameimplementsApplicationListener{Meshmesh;ShaderProgramshader;Texturetexture;publicstaticvoidmain(String[]args){LwjglApplicationapp=newLwjglApplication(newGame(),"MeshTutorial1",800,600,tru

java - libGDX 着色器坐标和相机位置

我正在使用libGDX、TiledMap和Box2D开发平台游戏。我想应用一些着色器。我想要一个贴在英雄身上的晕影效果。对于晕影效果,我使用了thistutorial.我遇到的问题是:如果相机是固定的,我得到的正是我想要的。小插图坚持英雄。但是,如果摄像机移动(这发生在滚动平台游戏中),晕影效果就不会粘在英雄身上。Hereisavideothatillustratesmyproblem看来我必须考虑相机位置来计算晕影效果的坐标,但我不知道如何。这是我用于小插图的片段着色器:varyingvec4v_color;varyingvec2v_texCoord0;uniformvec2u_re

c++ - 在 Qt 的外部类中使用 OpenGL 上下文

我在Qt中有一个继承自QGLViewer的窗口。如果我在该类中创建任何着色器程序,QGLShaderProgrammyShader一切都运行良好。但是,我开始将一些渲染调用移至具有draw()调用的类之外​​的类,结果出现问题。应用程序编译正常,没有错误,但在执行时我收到错误Theprogramhasunexpectedlyfinished。我发现从Qt4到Qt5着色器类发生了变化,成为Qt5中使用的QOpenGLShaderProgram。我试了一下,但还是出现了同样的问题,不过我收到了一条不同的错误消息QOpenGLFunctionscreatedwithanon-currentc

c++ - 使用 QGLShaderProgram 将自定义类型(结构)统一从 Qt 传递到 GLSL

我为包含两个vector的光参数定义了一个结构。该结构在C++和GLSL中以类似的方式定义(注意:QVector3D封装了3个float,而不是double):C++宿主程序:structLightParameters{QVector3Dpos;QVector3Dintensity;};片段着色器:structLightParameters{vec3pos;vec3intensity;};在片段着色器中,我还定义了以下制服。灯的数量限制为8个,因此统一数组具有恒定大小(但实际只使用了numLights):constintmaxLights=8;uniformintnumLights;u

android - LibGDX - 着色器在桌面上工作但不在 Android 上

我编写了一个简单的程序,它在3d环境中渲染一个球体,并根据球体周围的四个光源为其着色。当我在桌面上运行该程序时,它工作得很好,但在Android设备上,球体只是纯色。这里有图片来说明我在说什么:->桌面->安卓这是着色器代码:sphere.vert#ifdefGL_ESprecisionmediumpfloat;#endifuniformmat4u_projectionMatrix;uniformmat3u_normalMatrix;uniformmat4u_modelViewMatrix;constintMAX_LIGHTS=8;uniformintu_lights_active;u

【OpenGL+Qt 学习】 你好,三角形

参考LearnOpenGLCN(learnopengl-cn.github.io)1-2VAO与VBO_哔哩哔哩_bilibili定义OpenGL窗口类#ifndefMYGLWIDGET_H#defineMYGLWIDGET_H#include#includeclassMyGLwidget:publicQOpenGLWidget,QOpenGLFunctions_3_3_Core{public:explicitMyGLwidget(QWidget*parent=nullptr);~MyGLwidget();private:unsignedintVAO;///#include"myglwidge

【OpenGL+Qt 学习】 你好,三角形

参考LearnOpenGLCN(learnopengl-cn.github.io)1-2VAO与VBO_哔哩哔哩_bilibili定义OpenGL窗口类#ifndefMYGLWIDGET_H#defineMYGLWIDGET_H#include#includeclassMyGLwidget:publicQOpenGLWidget,QOpenGLFunctions_3_3_Core{public:explicitMyGLwidget(QWidget*parent=nullptr);~MyGLwidget();private:unsignedintVAO;///#include"myglwidge