gpt4 book ai didi

opengl - 应用 Material 时着色效果不佳

转载 作者:行者123 更新时间:2023-12-05 00:34:39 25 4
gpt4 key购买 nike

我有一个带有两个简单对象(glutSolidCube 和 glutSolidTeapot)的 openGL 3d 场景。当我在启用 GL_COLOR_MATERIAL 的情况下设置灯光时,我得到以下结果:

enter image description here

哪个好。然后当我像这样设置自己的 Material 时:

//diffuse light color variables
GLfloat dlr = 0.4;
GLfloat dlg = 0.6;
GLfloat dlb = 0.9;

//ambient light color variables
GLfloat alr = 0.7;
GLfloat alg = 0.7;
GLfloat alb = 0.7;

//ambient light color variables
GLfloat slr = 0.4;
GLfloat slg = 0.4;
GLfloat slb = 0.4;


GLfloat DiffuseLight[] = {dlr, dlg, dlb}; //set DiffuseLight[] to the specified values
GLfloat AmbientLight[] = {alr, alg, alb}; //set AmbientLight[] to the specified values
GLfloat SpecularLight[] = {slr, slg, slb}; //set AmbientLight[] to the specified values

glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (float *)&AmbientLight);
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (float *)&DiffuseLight);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (float *)&SpecularLight);

我得到了非常不同的结果,你可以看到它没有被正确着色,虽然我将它定义为 SMOOTH (Gouraud),但它就像 FLAT 着色。

enter image description here

问题出在哪里?是在 Material 定义上吗?

最佳答案

您忘记设置 specular shininess .
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 12.0f);
将其设置为 10...25,它看起来会更好/更 Shiny 。不过,它看起来不如每像素照明。光泽度的默认值为零,这看起来与您所看到的完全一样 - 即丑陋。

关于opengl - 应用 Material 时着色效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10412466/

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