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

Revision 3021, 1.5 KB checked in by mattausch, 16 years ago (diff)

removed leaks. added class for shaders

Line 
1#ifndef _SKYPREETHAM_H__
2#define _SKYPREETHAM_H__
3
4#include "glInterface.h"
5#include "common.h"
6#include "ShaderProgram.h"
7
8#include <Cg/cg.h>
9#include <Cg/cgGL.h>
10
11
12namespace CHCDemoEngine {
13        class Vector3;
14        class SceneEntity;
15        class RenderState;
16        class Camera;
17}
18
19class SkyPreetham
20{
21public:
22        /// Constructor taking sky turbitity as parameter and the sky dome geometry
23        SkyPreetham(float turbitity, CHCDemoEngine::SceneEntity *skyDome);
24       
25        ~SkyPreetham();
26
27        void RenderSkyDome(const CHCDemoEngine::Vector3 &sunDir,
28                               CHCDemoEngine::Camera *camera,
29                                           CHCDemoEngine::RenderState *state,
30                                           bool scaleToRange);
31
32        void ComputeFactors(const CHCDemoEngine::Vector3 &sunDir,
33                                CHCDemoEngine::Vector3 &zenithColor,
34                                                std::vector<CHCDemoEngine::Vector3> &ABCDE,
35                                                std::pair<float, float> &sunThetha) const;
36
37        void ComputeSunColor(const CHCDemoEngine::Vector3 &sunDir,
38                                 CHCDemoEngine::Vector3 &ambient,
39                                                 CHCDemoEngine::Vector3 &diffuse,
40                                                 bool scaleToRange) const;
41
42        static void InitCG(CGcontext context);
43        static void ReleaseCG();
44
45
46protected:
47
48        void RenderSunDisk(const CHCDemoEngine::Vector3 &lightDir, CHCDemoEngine::Camera *camera);
49        void CreateSunQuad();
50
51
52        /// Members.
53/*      FEffect*                mEffect;
54
55        FEffect*                mSunEffect;
56        FTexture2D*             mSunTexture;
57        FVertexBuffer*  mSunQuad;
58*/
59        CHCDemoEngine::SceneEntity *mSkyDome;
60
61        float mTurbidity;
62
63        static CHCDemoEngine::ShaderContainer sShaders;
64};
65
66#endif //_SKYPREETHAM_H__
67
Note: See TracBrowser for help on using the repository browser.