source: GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SkyPreetham.h @ 3085

Revision 3085, 1.5 KB checked in by mattausch, 16 years ago (diff)
RevLine 
[2954]1#ifndef _SKYPREETHAM_H__
2#define _SKYPREETHAM_H__
3
[2960]4#include "common.h"
[3021]5#include "ShaderProgram.h"
6
[2957]7
8
[3021]9namespace CHCDemoEngine {
10        class Vector3;
11        class SceneEntity;
12        class RenderState;
13        class Camera;
[3038]14        class ShaderProgram;
[2955]15}
16
17class SkyPreetham
[2954]18{
19public:
[2957]20        /// Constructor taking sky turbitity as parameter and the sky dome geometry
21        SkyPreetham(float turbitity, CHCDemoEngine::SceneEntity *skyDome);
[3021]22       
23        ~SkyPreetham();
[2954]24
[3021]25        void RenderSkyDome(const CHCDemoEngine::Vector3 &sunDir,
26                               CHCDemoEngine::Camera *camera,
27                                           CHCDemoEngine::RenderState *state,
28                                           bool scaleToRange);
[2955]29
[2960]30        void ComputeFactors(const CHCDemoEngine::Vector3 &sunDir,
31                                CHCDemoEngine::Vector3 &zenithColor,
32                                                std::vector<CHCDemoEngine::Vector3> &ABCDE,
33                                                std::pair<float, float> &sunThetha) const;
34
[2982]35        void ComputeSunColor(const CHCDemoEngine::Vector3 &sunDir,
36                                 CHCDemoEngine::Vector3 &ambient,
37                                                 CHCDemoEngine::Vector3 &diffuse,
38                                                 bool scaleToRange) const;
[2960]39
[3038]40        void InitCG();
[2960]41
[3021]42
[2954]43protected:
44
[2958]45        void RenderSunDisk(const CHCDemoEngine::Vector3 &lightDir, CHCDemoEngine::Camera *camera);
[2955]46        void CreateSunQuad();
[2954]47
48
[3038]49        //////////
[2954]50
[3038]51        /*      FEffect*                mEffect;
52
[2954]53        FEffect*                mSunEffect;
54        FTexture2D*             mSunTexture;
55        FVertexBuffer*  mSunQuad;
[3038]56        */
57
[2957]58        CHCDemoEngine::SceneEntity *mSkyDome;
59
[3038]60        /// the turbidity of the sky
[2954]61        float mTurbidity;
[3021]62
[3038]63        CHCDemoEngine::ShaderProgram *mSkyVtxProgram;
64        CHCDemoEngine::ShaderProgram *mSkyFragProgram;
[2954]65};
66
67#endif //_SKYPREETHAM_H__
68
Note: See TracBrowser for help on using the repository browser.