36得票3回答
为什么GL会自动将`gl_Position`除以W而不是让你自己操作?

注意:我理解基本的数学知识。 我明白各种数学库中典型的“透视”函数会产生一个矩阵,将-zNear到-zFar的z值转换为-1到+1,但仅当结果被除以“w”时才是如此。 具体问题是GPU代替你完成这个过程,与你自己手动完成相比,有哪些好处? 换句话说,假设GPU没有神奇地将除以,而是您必须像...

35得票1回答
点精灵用于粒子系统

点精灵是否是构建粒子系统的最佳选择? 点精灵是否存在于较新版本的OpenGL和最新图形卡驱动程序中?或者应该使用VBO和GLSL来实现它?

35得票2回答
在OpenGL GLSL中从RGB转换为HSV

我需要将RGB颜色空间转换为HSV。我在互联网上搜索了两种不同的实现方法,但它们给出了不同的结果: A: precision mediump float; vec3 rgb2hsv(float r, float g, float b) { float h = 0.0; ...

35得票3回答
如何在glsl中使用#include支持ARB_shading_language_include

我想使用#include宏在glsl中包含着色器文件,我听说有一个ARB_shading_language_include扩展支持#include宏。是否有人可以给我一个代码片段,演示如何使用#include宏?

34得票1回答
GLSL中的texture vs texture2D区别

当在GLSL中对2D纹理进行采样(使用uniform sampler2D),需要使用texture函数,并且从采样器中推断出维度(在这种情况下为2D)。这是自GLSL 1.30以来采样纹理的现代方式(GLSL参考页面)。然而,您也可以使用texture2D函数。 texture2D函数是否已...

34得票1回答
在OpenGL/GLSL中,“genType”一词是什么意思?

在GLSL文档中,术语genType经常用作参数的类型。例如,函数dot的文档如下:float dot(genType x, genType y); double dot(genDType x, genDType y); 术语genType是什么意思...

34得票1回答
在GLSL中确定最小/最大向量的逻辑是什么?

我有点惊讶自己之前不知道这个,但承认自己还在学习从来不会有错 :) 在GLSL中有min 和 max 函数,根据它们的文档说明: 返回两个值中较小/较大的一个。 但是当输入的值是向量时,如何确定最小值和最大值呢? 显然,(1, 1) 小于 (2, 2),但是 (1, 3) 和 (...

33得票3回答
GLSL ES 2.0(适用于iPhone/iPod touch/iPad)中,highp浮点数的精度是多少?

我有一个着色器,理想情况下需要28位尾数,但可以使用较少的位数来降低性能。 如何确定OpenGL ES中“highp”精度是多少?它可能是FP24,具有16位尾数,但我无法确定或询问OpenGL。 有什么想法吗?

33得票2回答
GLSL和GLSL ES 2之间的区别

实际上有两个问题... GLSL ES 2是完全独立的语言,还是GLSL的特殊版本? 就“标准库”函数、语法和能力而言,它们之间有何不同? 我正在为一个面向Windows、Mac和iPad的应用程序编写着色器,我希望不必为每个着色器添加更多版本 - 至少对于简单的着色器而言。

32得票6回答
如何在OpenGL 3.2中绘制全屏四边形的最佳方法?

我正在片段着色器中进行光线投射。我可以想到几种方法来绘制全屏四边形。一种是使用投影矩阵设置为单位矩阵在裁剪空间中绘制四边形,另一种是使用几何着色器将点转换为三角形带。前者使用立即模式,在OpenGL 3.2中已弃用。后者我使用新颖性,但仍然使用立即模式绘制一个点。