首页 文章
  • 0 votes
     answers
     views

    glBufferData上的段错误

    我'm trying to port my fixed function pipeline openGL code to use GLSL, but I'与 glBufferData 发生了段错误 . 这对固定功能的东西都很好(即我可以渲染加载的网格没有问题) . 这是加载顶点的代码(来自AssImp导入器库): 在Mesh.h文件中定义: ... glm::detail::uint32 vaoI...
  • 6 votes
     answers
     views

    THREE.js / GLSL:WebGL着色器,根据世界空间位置对片段进行着色

    我已经看到了基于颜色片段在屏幕空间或其本地对象空间中的位置的解决方案,如Three.js/GLSL - Convert Pixel Coordinate to World Coordinate . 那些正在使用屏幕坐标,并在相机移动或旋转时进行更改;或仅适用于本地对象空间 . 我想要完成的是基于它们在世界空间中的 position 来着色碎片(如在three.js场景图的世界空间中) . 即使相机...
  • 1 votes
     answers
     views

    使用SkiaSharp自定义片段着色器

    我正在评估SkiaSharp用于允许在照片上渲染一些矢量元素的项目 . SkiaSharp看起来非常适合渲染矢量元素,但是我也想对图像应用变换 - 例如对比度或曝光等色调曲线调整 . 理想的情况是在渲染包含图像的矩形时执行自定义GLSL片段着色器代码的方法(例如,包含GLSL代码的SKColorFilter子类,在调用DrawBitmap时应用,或类似) . 将我现有的GLSL代码渲染到纹理也可...
  • 0 votes
     answers
     views

    GL版本3.1和4.x之间的支持

    因为我已经陷入了一些困境:虽然我有一个支持GL 4.3( nVidia GTX 550 ti 型号)的好视频卡,我的笔记本电脑正在运行集成显卡(Intel HD 3000,确切地说是 i5-2410M ),运行3.1版 . 我不知道这张卡是否能够支持OpenGL 3.2 . 无论哪种方式,如果事实证明驱动程序更新是's needed for core i3/i5 processors to sup...
  • 0 votes
     answers
     views

    GLSL Shader无法编译,Java和LWJGL着色器错误

    编译我的着色器时,我几次遇到此错误 . 这是infoLog /错误 顶点着色器无法编译时出现以下错误:错误:0:1:错误(#132)语法错误:“<”解析错误错误:错误(#273)1编译错误 . 没有代码生成 这发生在片段着色器上 . 这是我非常基本的测试顶点和frag着色器代码: @version 330 layout (location = 0) in vec3 position; v...
  • -3 votes
     answers
     views

    GLSL 120顶点着色器显示比着色器程序更不活跃的制服

    我正在使用opengl版本2.1,glsl 120,lwjgl 3.每当我调用GL20.glUniformMatrix4fv()时,它都不会被着色器程序识别 . 调试后,所有着色器和程序都不会返回错误 . 一个立方体被绘制到窗口(因为没有投影它显示为四边形) . Shader程序编译没有错误并且工作: #version 120 attribute vec3 position; uniform m...
  • 0 votes
     answers
     views

    没有颜色数据传递给顶点着色器

    我正在关注an OpenGL tutorial并且到了我应该将颜色数据传递到顶点着色器的点,但我得到的只是一个黑色立方体 . 我知道片段着色器从顶点着色器中获取颜色,因为我通过将颜色vec3设置为1,0,0来测试它并且它起作用 . Graphics Driver :Nvidia 388.13 OpenGL Version :4.3 Drawing Cube: GLuint VertexArrayI...
  • 1 votes
     answers
     views

    奇怪的结果w / Blinn-Phong GLSL着色器,点光源

    我已经制作了一个GLSL着色器,用于在场景中进行每像素的blinn phong照明,并且我在场景中投射了一些问题 . 每个灯光的效果似乎都有一个非常坚硬的边界(在附加的截图中,你可以看到底部平面上的光线边界 - 光线(其世界位置相当于场景中悬挂的黑色球体)悬在上面飞机和法拉利车型,但由于某种原因,只能将光线适当地朝向/朝向相机,而不是向前,远离相机 . 我觉得我犯了一些错误/缺乏对眼睛方向如何影响...
  • 2 votes
     answers
     views

    为什么glDrawElements会给我GL_OUT_OF_MEMORY? [关闭]

    我'm only drawing 4 vertices. I' m尝试使用 glDrawElements 渲染一个简单的四边形,但似乎没有任何效果 . 我也用Java编写了相同的代码,但它确实有效 . 然而,这不是 . 这是绘图代码: glUseProgram(mProgram); glBindBuffer(GL_ARRAY_BUFFER, mBuffers[0]); glEnableVert...
  • 0 votes
     answers
     views

    为什么我的灯光错了?

    我有一个以C(0,0,0)为中心的球体 . 现在我计算顶点着色器内的法线 . 我没有把它传递给它 . #version 330 layout(location = 0) in vec3 in_Position; //declare position layout(location = 1) in vec3 in_Color; // mvpmatrix is the result of mult...
  • 46 votes
     answers
     views

    为什么有一个单独的投影矩阵,但结合模型和视图矩阵是有益的?

    当您学习3D编程时,您会被教导从3个转换矩阵的角度来考虑它是最简单的: 模型矩阵 . 该矩阵对于每个模型都是独立的,它可以根据需要旋转和缩放对象,最后将其移动到3D世界中的最终位置 . "The Model Matrix transforms model coordinates to world coordinates" . 视图矩阵 . 对于大量对象(如果不是对于所...
  • 2 votes
     answers
     views

    GLSL中的OpenGL预乘alpha给出了DDS纹理的意外结果

    我有以下情况 . 我在使用OpenGL渲染器(OpenGL 4.2,所以没有固定的东西) . 我不会使用硬件混合,因为我在着色器中做了各种图像效果 . 我有两种类型的输入纹理: 1)带有alpha通道的PNG 24 . 2)带有alpha通道的DDS(DXT5) . 在片段着色器中,我在输出前预先进行多重alpha处理: 片段着色器: outputColor=texture(colorMap,i...
  • 0 votes
     answers
     views

    为什么GLSL日志返回错误的结果? (Intel驱动程序)

    我正在GPU上做一些数学并阅读结果 . 我从日志中得到了错误的值 . 我已经验证了0 - 10,20,30,40的值 . 如果我对该值进行硬编码(正如您在验证下看到的那样),我会得到正确的结果吐出来 . 但是,如果我使用带有应该返回相同结果的硬编码值的log,我会得到错误的结果spat out . 这是我在我的功能中一直在做的事情 . vec4 IScale(vec4 value) { ...
  • -2 votes
     answers
     views

    Shader提供错误的片段颜色

    我遇到了我在着色器体验中遇到过的最奇怪的问题 . 我创建了一些测试着色器代码(见下文)并在一个简单的纹理上运行它 . 基本上我试图做的是让我的着色器检查片段的颜色,如果它在一定范围内,它将根据统一的颜色变量为该片段着色 . 我遇到的问题是我的着色器无法正确识别片段的颜色 . 我甚至还去检查颜色的红色部分是否等于1,并且每个片段总是返回true . 然而,如果我使用相同的着色器绘制原始纹理,它就可以...
  • 0 votes
     answers
     views

    为什么我的灯光计算错了?

    我正在使用Blinn-Phong算法来计算场景中的光照,而我还没有考虑距离 . 在修复第一个问题之前,我还禁用了HDR和Specular计算 . 我在某个大约95%的位置确定这是我的片段着色器中的一个错误,但我正在设置一个完整的MCVE以防万一我在其他地方犯了错误 . 片段着色器: R"DATA(#version 430 layout(location = 0) in vec3 vert...
  • 1 votes
     answers
     views

    OpenGL:在着色器中实现的Blinn-Phong模型给出了错误的结果

    首先,我是计算机图形学,openGL的新手,并具有c编码的基本知识 . 我已经和openGL项目一样挣扎了一个月,并且已经到了我必须用Blinn-Phong模型实现着色的地步 . 我已经在顶点和片段着色器中实现了计算 . 在代码中存在/可能存在一些小错误,因为没有着色一切都可以完美地工作但是在着色部分被添加到着色器后,任何事情都不会发生 . 我在片段着色器中计算表面法线,也使用纹理而不仅仅是颜色 ...
  • 2 votes
     answers
     views

    在OpenSceneGraph中运行时更新纹理

    我正在开发一个项目,我需要从外部设备视频捕获帧并在openSceneGraph节点上渲染它们 . 我也在使用GLSL着色器 . 但我不知道如何在运行时更新纹理 . 对于其他制服,我们需要进行回调,但是我们还需要在glsl和openSceneGraph中为采样器进行回调吗? 我的代码看起来像这样 . 我现在得到的只是一扇黑色的窗户 . osg::ref_ptr<osg::Geometry&gt...
  • 2 votes
     answers
     views

    OpenSceneGraph和GLSL 330光影

    我写了很多 #version 330 core GLSL着色器我想与OpenSceneGraph(OSG)3.2.0框架一起重用,并尝试弄清楚如何从OSG获取状态我需要通过制服传递,以及如何设置它们而不必更改经过良好测试的着色器代码,以及如何填充任意命名的属性 . 这个(版本140,OpenGL 3.1)http://trac.openscenegraph.org/projects/osg/br...
  • 0 votes
     answers
     views

    使用OpenGL着色器渲染多个对象

    在带着色器的OpenGL中,我想渲染两个已加载为两个网格的对象 . 每个对象由一组顶点位置,一组顶点颜色和一组三角形的顶点索引表示 . 我可以通过三种方式来绘制这两个对象 . 哪种是最佳做法? 1)我将两个对象的顶点位置连接成一个长的顶点数组,并且类似于顶点颜色和顶点索引 . 然后我创建一个顶点位置缓冲区,一个顶点颜色缓冲区和一个索引缓冲区 . 渲染时,我然后调用 glBindBuffer(......
  • 1 votes
     answers
     views

    如何为每个对象绘制多个纹理

    如何将多个纹理应用于每个对象的不同面? 具体来说我画了一个立方体 **我希望能够在立方体的每个不同面上绘制不同的图像(或 sub-image).**我该怎么做? 顶点着色器: #version 330 core uniform vec3 position = vec3(0.0, 0.0, 0.0); void main() { gl_Position = vec4(position, ...
  • 0 votes
     answers
     views

    为什么OpenSceneGraph将所有Sampler2D映射到第一个纹理

    我目前正在用OpenSceneGraph(3.4.0)和我自己的glsl(330)着色器编写程序 . 它使用多个纹理进行输入,然后使用预渲染相机进行多个渲染目标渲染,并使用第二个相机读取这些多个渲染目标纹理以进行延迟着色 . 因此两个相机都有自己的着色器(这里称为geometry_pass和lighting_pass) . 我的问题:两个着色器在阅读时都在所有 sampler2D 制服中使用相同的...
  • 4 votes
     answers
     views

    2D中的GLSL渲染

    (OpenGL 2.0) 我设法在opengl中做了一些不错的文本渲染,并决定将其设计为着色器 . 但是,在固定管道模式下看起来不错的渲染字体纹理在GLSL模式下看起来很不愉快 . 在固定管道模式下,我没有看到GL_LINEAR和GL_NEAREST过滤之间有任何区别,这是因为纹理不需要真正过滤,因为我设置了正交投影并将四边形的宽度和高度与纹理坐标对齐 . 现在,当我尝试使用着色器渲染它时,我可以...
  • 8 votes
     answers
     views

    OpenGL计算着色器中的样本深度缓冲区

    我正在尝试将深度纹理采样到计算着色器中并将其复制到其他纹理中 . 问题是,当我从深度纹理中读取时,我得不到正确的值: 我试图检查深度纹理的初始值是否正确(使用GDebugger),它们是 . 所以这是imageLoad GLSL函数检索错误的值 . 这是我的GLSL Compute着色器: layout (binding=0, r32f) readonly uniform image2D dept...
  • 0 votes
     answers
     views

    OpenGL GL_TEXTURE_CUBE_MAP没有纹理/黑色

    我想做一个简单的CG任务:绘制一个带有纹理的天空 Map 立方体 . 已经阅读了很多教程,但纹理存在一些问题 . 立方体的所有6个边都是完全黑色的(但是如果我在片段着色器中替换纹理(..)用简单的vec4(1.0f,...)调用,那么墙就会被着色,所以它必须是纹理) . 所以,这里是我正在做的事情的摘录: void SkyCube::init() { mShader = new Shade...
  • 2 votes
     answers
     views

    NAN在OpenGL纹理中

    我在桌面应用程序(Windows / Linux,GLSL 4.2)中使用包含float 32数据(GL_RGBA32F格式)的1D,2D和3D OpenGL纹理 . 这些纹理包含预先计算的物理数据的结果,并且可能包含预计算失败的一些NAN值(在我的应用程序中这是“正常”,有些情况无法计算,这很少但是“正常”) 我需要在着色器中检测这些值 . 在GLSL采样器中处理NAN值是否有任何标准? 进一步...
  • 1 votes
     answers
     views

    从深度纹理采样总是得到0

    我正在尝试使用opengl实现阴影贴图,使用定向光源 . 我已经确认正确渲染了深度纹理,如下所示: 为了进行视觉检查,我还输出了世界空间坐标,转换为光透视: 再次,似乎没问题 . 但是,当我对深度纹理进行采样时,使用: vec3 coord = vec3(shadowCoords.xy,shadowCoords.z/shadowCoords.w); float depth = texture( ...
  • 2 votes
     answers
     views

    GLSL片段着色器输出类型

    假设我遇到这样的问题:现在我有一个帧缓冲区,并且纹理只包含一个颜色组件(例如,GL_RED)已经绑定到它 . 片段着色器会是什么样的?我想答案是: ...浮出ex_color; ex_color = ...; 我的问题出现了:着色器会自动检测帧缓冲区的格式并将值写入吗?如果片段着色器输出浮点值但帧缓冲格式是GL_RGBA怎么办? 那么,创建纹理的正确方法是什么只有一个组件?我从g-truc中读...
  • 4 votes
     answers
     views

    如何用一维纹理替换GLSL均匀数组

    我想让Ardor3D的地形系统在SM3.0硬件上运行 . 当前的GLSL片段着色器使用统一的vec2数组将xy坐标数组传递到片段着色器中 . 由于动态索引统一数组仅适用于SM4.0硬件,为了使其在SM3.0上运行,我需要用1D浮点纹理替换它 . 当前数组如下所示: uniform vec2 sliceOffset[8]; 并按如下方式访问: vec2 offset = sliceOffset[in...
  • 6 votes
     answers
     views

    像素完美纹理映射与现代OpenGL

    在决定尝试在现代OpenGL中编程之后,我已经留下了固定功能管道,我不完全确定获得与之前相同的功能 . 我正在尝试使用像素完美尺寸来纹理 Map 四边形,匹配纹理大小 . 例如,128x128纹理映射到四倍128x128的大小 . 这是我的顶点着色器 . #version 110 uniform float xpos; uniform float ypos; uniform...
  • 5 votes
     answers
     views

    使用uniform sampler2d []时无法解释的行为

    对不起,这需要一点解释 . 我试图让它变得尽可能简单 . What I want to do: 我正在看高度场 . 高度字段可以具有多个补丁 . 贴片是一种较小的纹理,可以改变高度字段 . 我正在使用OpenGL 4.0,主要是tesselation着色器 . 但是对于这个问题,这应该是无关紧要的 . What is working allready. 我有高度字段(没有补丁)的可视化工作 . 关...

热门问题