sách gpt4 ai đã đi

opengl - OpenGL ES和OpenGL兼容的着色器

In lại 作者:行者123 更新时间:2023-12-04 17:38:14 27 4
mua khóa gpt4 Nike

我想为OpenGL ES和OpenGL(Windows)使用相同的着色器源。为此,我想定义自定义数据类型并仅使用OpenGL ES函数。

一种方法是定义:

#define highp
#define mediump
#define lowp

Windows着色器,并编写与OpenGL ES相同的着色器。

另一种方法是为OpenGL ES定义自定义数据类型,如下所示:
#define hvec2 highp vec2

对于Windows,就像这样
#define hvec2 vec2

您认为哪个更好?您是否有其他解决方案来解决此问题?

1 Câu trả lời

我的解决方案是编写与两个API兼容的着色器代码,然后将片段着色器源代码上传到OpenGL ES时,只需在以下行之前添加:

precision mediump float;

这会将默认浮点精度设置为中。在OpenGL ES片段着色器中,没有浮点值的默认精度级别,这意味着您要么需要在每个浮点声明中指定精度,要么显式设置默认精度。如果对您的应用程序更有意义,则可以改用 lowphoặc highp.

有关更多详细信息,请参见OpenGL ES着色语言规范的4.5.3节: http://www.khronos.org/files/opengles_shading_language.pdf

如果需要更好地控制着色器的精度,也可以将这种方法与 #define方法混合使用。

关于opengl - OpenGL ES和OpenGL兼容的着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11435105/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com