相关疑难解决方法(0)

创建GLSL阵列的制服?

我想留下OpenGL的灯光,然后自己做.我希望我的着色器允许可变数量的灯光.

我们可以在GLSL着色器中声明一组制服吗?如果是这样,我们如何设定这些制服的价值?

arrays opengl shader glsl

65
推荐指数
2
解决办法
5万
查看次数

gl_PointSize对应世界空间大小

如果要渲染冒名顶质几何体(比如球体),则标准练习是使用两个三角形绘制它(例如,通过传递一个顶点并使用几何着色器制作三角形条带).

这很好,因为它允许相当简单地设置广告牌的范围:直接计算实际的世界空间位置.

几何着色器可以交替输出点基元,我没有看到它们不应该的原因.唯一的问题是找到一些扩展方法,gl_PointSize以便你获得这种效果.

我能找到的唯一先例是这个问题(我的答案我不确定是正确的)和这个问题(没有答案).

值得注意的是,用距离正确地缩放点是相当简单的(通过这样做gl_PointSize = constant/length(gl_Position),但这是不可控的;你不能说例如:我希望这一点看起来像是两个世界单位.

那么:谁知道怎么做?

opengl glsl

11
推荐指数
1
解决办法
2873
查看次数

将场景渲染到帧缓冲区对象(FBO)然后将该FBO渲染到屏幕所需的步骤是什么?

我有一个相当复杂的场景,我需要渲染许多GL_POINTS.场景将基本上是静态的,所以我想将它渲染到Framebuffer对象,然后只在场景实际发生变化时更新FBO.然后,我想将FBO渲染到每一帧的屏幕上.

我找到了将FBO渲染为纹理的示例.我找到了将FBO渲染成RenderBuffer的例子(仍不太确定是什么).我不确定实现这一目标的步骤是什么.我是否需要渲染到纹理并将纹理绘制到屏幕上?

你可以列举一下步骤(理想情况下甚至是伪代码或实际代码)来将我的场景渲染到FBO然后将FBO绘制到屏幕上.

draw() 对于我自己的绘图功能的占位符来说已经足够了.

opengl 3d graphics jogl

9
推荐指数
1
解决办法
9032
查看次数

标签 统计

opengl ×3

glsl ×2

3d ×1

arrays ×1

graphics ×1

jogl ×1

shader ×1