我正在尝试将光照添加到我当前的简单立方体场景中.在设置我的制服之后,我从glGetError()获得了这段代码的1282错误
GLuint ambientHandle = glGetUniformLocation(program->getHandle(), "ambientProduct");
glUniform4fv( ambientHandle, 1, ambientProduct );
GLuint diffuseHandle = glGetUniformLocation(program->getHandle(), "diffuseProduct");
glUniform4fv( diffuseHandle, 1, diffuseProduct );
GLuint specularHandle = glGetUniformLocation(program->getHandle(), "specularProduct");
glUniform4fv( specularHandle, 1, specularProduct );
GLuint lightPosHandle = glGetUniformLocation(program->getHandle(), "lightPosition");
glUniform4fv( lightPosHandle, 1, light.position );
GLuint shinyHandle = glGetUniformLocation(program->getHandle(), "shininess");
glUniform1f( shinyHandle, materialShininess );
Run Code Online (Sandbox Code Playgroud)
这是我的着色器:vertex.glsl
#version 120
attribute vec4 coord3d;
attribute vec3 normal3d;
// output values that will be interpretated per-fragment
varying vec3 fN;
varying vec3 fE;
varying vec3 fL;
uniform vec4 lightPosition;
uniform …Run Code Online (Sandbox Code Playgroud) 我最近被问到一个基本的C++问题,我实际上并不知道答案,我从来没有发现答案是什么.这是一个问题:
运行此程序时,可能会导致错误.您将对Base类进行哪些更改来修复它?
#include <iostream>
class Base {
public:
virtual void ShowMessage () {
std::cout << "Base class message\n";
}
// Something should be added here!
};
class Derived : public Base {
public:
explicit Derived (const std::string & value)
: myValue(value)
{
}
virtual void ShowMessage () {
std::cout << "Derived class message " << myValue << "\n";
}
private:
std::string myValue;
};
int main () {
Base * obj = new Derived("Test message");
obj->ShowMessage();
delete obj;
}
Run Code Online (Sandbox Code Playgroud)
它在我的机器上编译并运行得很好.有谁知道他们在找什么?