本文整理汇总了C++中PointLight::SetSpecularColor方法的典型用法代码示例。如果您正苦于以下问题:C++ PointLight::SetSpecularColor方法的具体用法?C++ PointLight::SetSpecularColor怎么用?C++ PointLight::SetSpecularColor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PointLight
的用法示例。
在下文中一共展示了PointLight::SetSpecularColor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnStart
void DeferredRenderingApplication::OnStart()
{
mpMainCamera->GetGameObject()->GetTransform()->SetPosition(glm::vec3(0.0f, FLOOR_SIZE * 0.5f, (float)FLOOR_SIZE));
mpMainCamera->GetGameObject()->GetTransform()->RotateAround(-20.0f, glm::vec3(1.0f, 0.0f, 0.0f));
std::vector<PointLight*> pointLights;
GameObject* pPointLightGameObject;
PointLight* pPointLight;
float depthIncrement = FLOOR_SIZE / (float)LIGHT_GRID_DEPTH;
float horizontalIncrement = FLOOR_SIZE / (float)LIGHT_GRID_WIDTH;
float intensity = 0.2f;
for (float z = 1; z < FLOOR_SIZE; z += depthIncrement)
{
for (float x = 1; x < FLOOR_SIZE; x += horizontalIncrement)
{
pPointLightGameObject = GameObject::Instantiate();
pPointLightGameObject->GetTransform()->SetPosition(glm::vec3(-(FLOOR_SIZE * 0.5f - (2.0f * SPHERE_RADIUS)) + x, SPHERE_RADIUS * 2.5f, -(FLOOR_SIZE * 0.5f - (2.0f * SPHERE_RADIUS)) + z));
pPointLight = PointLight::Instantiate(pPointLightGameObject);
glm::vec4 color = Colors::COMMON_LIGHT_COLORS[Random::Range(0, Colors::NUMBER_OF_COMMON_LIGHT_COLORS)];
pPointLight->SetDiffuseColor(color);
pPointLight->SetSpecularColor(color);
pPointLight->SetIntensity(intensity);
pointLights.push_back(pPointLight);
}
}
mpCheckersColorMapTexture = TextureImporter::Import("textures/CheckersColorMap.png");
mpFloorMaterial = new Material(ShaderRegistry::Find("Specular"));
mpFloorMaterial->SetTexture("colorMap", mpCheckersColorMapTexture);
mpFloorMaterial->SetVec4("diffuseColor", Colors::WHITE);
mpFloorMaterial->SetVec4("specularColor", Colors::WHITE);
mpFloorMaterial->SetFloat("shininess", 5.0f);
mpFloorMesh = StandardGeometries::CreateXZPlane((float)FLOOR_SIZE, (float)FLOOR_SIZE, 1, 1, glm::vec3(0, 0, 0));
GameObject* pFloorGameObject = GameObject::Instantiate();
MeshRenderer* pMeshRenderer = MeshRenderer::Instantiate(pFloorGameObject);
pMeshRenderer->AddMesh(mpFloorMesh);
MeshFilter* pMeshFilter = MeshFilter::Instantiate(pFloorGameObject);
pMeshFilter->SetMaterial(mpFloorMaterial);
mpSphereMaterial = new Material(ShaderRegistry::Find("SolidColor"));
mpSphereMaterial->SetVec4("diffuseColor", Colors::WHITE);
mpSphereMaterial->SetVec4("specularColor", Colors::WHITE);
mpSphereMaterial->SetFloat("shininess", 30.0f);
mpSphereMesh = StandardGeometries::CreateSphere(SPHERE_RADIUS, NUMBER_OF_SPHERE_SLICES);
std::vector<GameObject*> spheres;
for (float z = 0; z < FLOOR_SIZE; z += 1.0f)
{
for (float x = 0; x < FLOOR_SIZE; x += 1.0f)
{
GameObject* pSphereGameObject = GameObject::Instantiate();
pMeshRenderer = MeshRenderer::Instantiate(pSphereGameObject);
pMeshRenderer->AddMesh(mpSphereMesh);
pMeshFilter = MeshFilter::Instantiate(pSphereGameObject);
pMeshFilter->SetMaterial(mpSphereMaterial);
pSphereGameObject->GetTransform()->SetPosition(glm::vec3(-(FLOOR_SIZE * 0.5f - (2.0f * SPHERE_RADIUS)) + x, SPHERE_RADIUS, -(FLOOR_SIZE * 0.5f - (2.0f * SPHERE_RADIUS)) + z));
spheres.push_back(pSphereGameObject);
}
}
GameObject* pGeneralBehavioursGameObject = GameObject::Instantiate();
LightsAnimator* pLightsAnimator = LightsAnimator::Instantiate(pGeneralBehavioursGameObject);
pLightsAnimator->SetLights(pointLights);
KeyBindings* pKeyBindings = KeyBindings::Instantiate(pGeneralBehavioursGameObject);
FirstPersonCameraController* pFirstPersonCameraController = FirstPersonCameraController::Instantiate(pGeneralBehavioursGameObject);
pFirstPersonCameraController->SetWalkSpeed(WALK_SPEED);
pFirstPersonCameraController->SetTurnSpeed(TURN_SPEED);
pFirstPersonCameraController->SetFlying(true);
}