vertex-shader

    0热度

    1回答

    我正在尝试Cozzi和Ring的“虚拟地球的3D引擎设计”。我试图使用他们的顶点着色器(11.2.2,p。319),因为它似乎提供了我需要完成的起点(从基于数组的密集地形数据呈现地形) : in vec2 position; uniform mat4 og_modelViewPerspectiveMatrix; uniform sampler2DRect u_heightMap; void

    10热度

    1回答

    我在平面上有一个位移图512px * 512px(100x100分段),因为位移贴图的图像向左滚动顶点捕捉到高度位置没有平滑地融合,我一直在寻找在mix()函数和smooth-step()方法将法线转换为它们的位置,但我很难实现它。 uniform sampler2D heightText; //texture greyscale 512x512 uniform float displa

    -1热度

    1回答

    我目前正在构建一个顶点着色器来在三维模型上围绕z轴执行非常简单的旋转。 3D模型原本颜色很好。但是当我添加我写的着色器后,它将原始颜色搞乱了。我不知道为什么,因为我认为顶点着色器不应该触摸颜色部分。 我想要的只是转换顶点,并在同一时间,颜色保持原来的。 着色器是在这里,我将其命名为“shader.cpp”: void main() { float PI = 3.1415926535897

    0热度

    1回答

    我使用从矢量阵列提供的2个缓冲区在一个世界周围放置一堆方形瓷砖,一个用于颜色,另一个用于位置。三角形顶点颜色不平滑,因为它们不插入正方形中的两个三角形之间。为了解决这个问题,我想单独设置每个片段颜色,手动混合顶点的颜色。我无法用预制纹理替代这个过程。 Ive遇到的问题是将缓冲区中的下三个顶点位置和位置传递给顶点着色器。有没有简单的方法来做到这一点? 谢谢你,祝你有美好的一天!

    0热度

    1回答

    我使用单个顶点/索引缓冲区绘制了多个网格的完整对象,并且它们具有不同的纹理。因此,我想到了将纹理的ID与来自顶点着色器的顶点一起传递给片段着色器中的片段。问题是禁用插值。我在使用SDL2时使用GLSL ver 3.3,并在MingW上使用。 我试过flat out uint frag_MeshID;,而不是out uint frag_MeshID;在顶点着色器,但我仍然得到这个错误在编译片段着色器

    0热度

    1回答

    我正在使用DirectX Toolkit加载FBX模型的项目。据我所知,DXTK不支持模型的HLSL着色器,所以我必须从模型对象中获取模型信息(顶点缓冲区,索引缓冲区等),并实现一个标准的Direct3D绘图,如果我想使用HLSL着色器为了渲染。 我的问题是,我无法达到顶点着色器的纹理坐标。为了测试,我设置顶点着色器穿过坐标像素着色器,其中,I与纹理颜色整个对象坐标这样的: float4(inpu

    0热度

    1回答

    我正在查看phong lighting shader的代码示例。它在顶点着色器中使用gl_Normal,gl_Vertex和gl_ModelViewProjectionMatrix的预定义变量。我目前的顶点着色器看起来像这样。 #version 150 core in vec4 in_Position; in vec4 in_Color; in vec2 in_TextureCoord;

    0热度

    1回答

    我已经看到很多关于小插曲着色器的教程,就像these,但他们都没有说如何改变小插图的颜色,他们只是谈论应用棕褐色或灰色着色器整个复合图像。 例如上面的视频给出了阴影着色器的下面的代码。如何更改小插曲的颜色?所以它不是黑色,而是红色或橙色,图案内部的图像部分保持不变。 const float outerRadius = .65, innerRadius = .4, intensity = .6;

    0热度

    1回答

    我正试图解决Anton的OpenGL 4教程中的实验。在第一章的实验中,它要求创建第二个VAO来绘制两个形状,而不是一个,但我不知道如何做到这一点,怎样才能同时显示第二个形状? #include <GL/glew.h> #include <GLFW/glfw3.h> #include <iostream> int main() { // start GL context and

    1热度

    2回答

    I learnWebGL。我看到教程将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'; 我想我的着色