gpt4 book ai didi

iphone - 将自己的结构传递到 opengl es 2.0 着色器中

转载 作者:行者123 更新时间:2023-12-03 18:30:36 24 4
gpt4 key购买 nike

我想尝试《OpenGL ES 2.0 编程指南》一书中的照明示例。在着色器中他们制作了两种结构。

struct directional_light   
{

vec3 direction; // normalized light direction in eye space
vec3 halfplane; // normalized half-plane vector

vec4 ambient_color;
vec4 diffuse_color;
vec4 specular_color;
};

struct material_properties
{
vec4 ambient_color;
vec4 diffuse_color;
vec4 specular_color;
float specular_exponent;
};

他们还根据这些结构制作了两套制服。

uniform  material_properties u_material_properties;   
uniform directional_light u_directional_light;

问题是,我不知道如何将自己的结构传递到实际的着色器中。

我想在我的主代码中创建相同的结构并将对象传递到着色器中。这怎么可能?

问候尼古拉斯

最佳答案

你不能,OpenGL ES 没有该功能,要上传,你必须获取每个嵌套变量的位置并对每个变量调用 glUniform*。

例如:

GLuint loc = glGetUniformLocation(program, "u_material_properties.ambient_color");
glUniform4f(loc, 1.0, 1.0, 1.0, 0.0);

关于iphone - 将自己的结构传递到 opengl es 2.0 着色器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4110123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com