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

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