opengl_uniform_location_changes_every_frame

Shader Program的Uniform Location每一帧都会变化 不知道为什么。 我修了快一周的后台渲染不出来的bug,居然是因为这个。 是用RenderDoc发现draw call的时候有个缩放uniform一直是0矩阵。 nmd,为什么

February 29, 2024 · 1 min · 8 words · IAKSH

use_same_binding_point_for_ssbo_and_ubo_in_opengl

在OpenGL ES 3.2中,Shader Storage Buffer Object (SSBO) 和 Uniform Buffer Object (UBO) 都可以通过绑定点 (binding point) 进行链接12。这意味着你可以为每个SSBO和UBO选择不同的绑定点,以避免冲突。例如,你可以在着色器中这样定义3: layout (std140, binding = 0) uniform UBO_data { float randNum; float vtime; }; layout (std430, binding = 1) buffer SSBO_data { vec3 SSBO_color; }; 在这个例子中,UBO_data 的绑定点是 0,而 SSBO_data 的绑定点是 1。因此,只要你为每个SSBO和UBO选择不同的绑定点,就不会有冲突。总的来说,SSBO和UBO的绑定点是否会冲突,取决于你如何设置它们的绑定点。如果你为它们选择了相同的绑定点,那么就会发生冲突。如果你为它们选择了不同的绑定点,那么就不会发生冲突。所以,在设置绑定点时,需要确保每个SSBO和UBO都有一个唯一的绑定点。 From Bing

February 29, 2024 · 1 min · 48 words · IAKSH

texelFetch_and_texture_in_glsl

两者都是对纹理进行采样的函数,有两个参数,第一个是纹理采样器,第二个是片元坐标 区别是texelFetch是使用的真正的像素坐标,而texture使用的是归一化坐标。 比如,对于一个64x64的纹理,获取位于32x32点的rgba值,texelFetch的坐标为(32,32),而texture的坐标为(0.5,0.5)

February 29, 2024 · 1 min · 3 words · IAKSH

opengl_cubemap_must_set_filter_before_use

否则就会出现,cubemap片元离摄像头越远就越黑的问题。

February 29, 2024 · 1 min · word · IAKSH

opengl_cutting_distance_cant_be_crazy

FPSCamera(int screen_width, int screen_height, glm::vec3 start_pos = glm::vec3(0.0f, 0.0f, 0.0f), float start_yaw = -90.0f, float start_pitch = 0.0f, float speed = 0.000001f, float sensitivity = 0.1f, float start_fov = 45.0f, float start_near = 0.00001f, float start_far = 1000000.0f) noexcept 比如这样的值,就会出问题,光影乱蹦。

February 29, 2024 · 1 min · 40 words · IAKSH