source: GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Material.cpp @ 2795

Revision 2795, 1.4 KB checked in by mattausch, 16 years ago (diff)
RevLine 
[2747]1#include "common.h"
2#include "Material.h"
[2756]3#include "Texture.h"
4#include "glInterface.h"
[2769]5#include "RenderState.h"
[2747]6
[2756]7
[2776]8namespace CHCDemoEngine
[2751]9{
[2747]10
[2769]11RgbaColor RandomColor(float a, float b)
[2747]12{
[2769]13        return RgbaColor(a + Random(b), a + Random(b), a + Random(b), 1);
[2747]14}
15
16
[2756]17void Material::InitMaterial()
18{
19        mTexture = NULL;
[2769]20        mAlphaTestEnabled = false;
[2756]21
[2795]22        mAmbientColor = RgbaColor(0.2f, 0.2f, 0.2f, 1.0f);
[2769]23        mDiffuseColor = RgbaColor(1.0f, 1.0f, 1.0f, 1.0f);
[2795]24        //mSpecularColor = RgbaColor(.0f, .0f, .0f, 1.0f);
[2769]25        mSpecularColor = RgbaColor(0.5f, 0.5f, 0.5f, 1.0f);
[2795]26        mEmmisiveColor = RgbaColor(.0f, .0f, .0f, 1.0f);
[2756]27}
28
29
[2795]30Material::Material()
[2756]31{
32        InitMaterial();
33}
[2755]34
[2756]35
[2769]36Material::Material(const RgbaColor &color):
[2756]37mDiffuseColor(color),
[2755]38mAmbientColor(color),
[2795]39mSpecularColor(0, 0, 0, 1),
[2756]40mTexture(NULL)
[2755]41{
42}
43
44
[2747]45Material RandomMaterial()
46{
47        float a = 0.1f;
48        float b = 0.9f;
49
50        Material m;
51        m.mDiffuseColor = RandomColor(a, b);
52
53        return m;
54}
55
[2756]56
[2769]57//void Material::Render(RenderState *state)
58void Material::Render(RenderState *state)
[2756]59{
[2769]60        state->SetState(mTexture != NULL, mAlphaTestEnabled);
61
[2756]62        if (mTexture)
63                mTexture->Bind();
64        else
65                glBindTexture(GL_TEXTURE_2D, 0);
66
67        glMaterialfv(GL_FRONT, GL_AMBIENT, (float *)&mAmbientColor.r);
68        glMaterialfv(GL_FRONT, GL_DIFFUSE, (float *)&mDiffuseColor.r);
[2795]69        glMaterialfv(GL_FRONT, GL_EMISSION, (float *)&mEmmisiveColor.r);
[2756]70        glMaterialfv(GL_FRONT, GL_SPECULAR, (float *)&mSpecularColor.r);
[2751]71}
[2756]72
73
74}
Note: See TracBrowser for help on using the repository browser.