source: trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.cpp @ 1363

Last change on this file since 1363 was 1362, checked in by gah, 16 years ago

preparation to remove glui from build

File size: 1.8 KB
Line 
1#include <R2/R2FilePath.h>
2#include <Trace.h>
3#include "NvParticleAdvectionShader.h"
4#include <global.h>
5
6NvParticleAdvectionShader::NvParticleAdvectionShader() :
7    _velocityVolumeID(0),
8    _scale(1.0f, 1.0f, 1.0f),
9    _max(1.0f),
10    _timeStep(0.005f)
11{
12    _mode = 1;
13    init();
14}
15
16NvParticleAdvectionShader::~NvParticleAdvectionShader()
17{
18}
19
20void NvParticleAdvectionShader::init()
21{
22    _cgFP = LoadCgSourceProgram(g_context, "update_pos.cg", CG_PROFILE_FP30,
23        "main");
24    _posTimestepParam  = cgGetNamedParameter(_cgFP, "timestep");
25    _maxParam          = cgGetNamedParameter(_cgFP, "max");
26    _velTexParam       = cgGetNamedParameter(_cgFP, "vel_tex");
27    _posTexParam       = cgGetNamedParameter(_cgFP, "pos_tex");
28    //_tfTexParam      = cgGetNamedParameter(_cgFP, "tf_tex");
29    _initPosTexParam   = cgGetNamedParameter(_cgFP, "init_pos_tex");
30    _scaleParam        = cgGetNamedParameter(_cgFP, "scale");
31    _modeParam         = cgGetNamedParameter(_cgFP, "mode");
32}
33
34//void NvParticleAdvectionShader::bind(unsigned int texID, unsigned int tfTexID, unsigned int initPosTexID)
35
36void
37NvParticleAdvectionShader::bind(unsigned int texID, unsigned int initPosTexID)
38{
39    cgGLBindProgram(_cgFP);
40
41    cgGLSetParameter1f(_posTimestepParam, _timeStep);
42    cgGLSetParameter1f(_maxParam, _max);
43    cgGLSetParameter1f(_modeParam, _mode);
44    cgGLSetParameter3f(_scaleParam, _scale.x, _scale.y, _scale.z);
45    cgGLSetTextureParameter(_velTexParam, _velocityVolumeID);
46    cgGLEnableTextureParameter(_velTexParam);
47
48    //cgGLSetTextureParameter(_tfTexParam, tfTexID);
49    //cgGLEnableTextureParameter(_tfTexParam);
50
51    cgGLSetTextureParameter(_posTexParam, texID);
52    cgGLEnableTextureParameter(_posTexParam);
53
54    cgGLSetTextureParameter(_initPosTexParam, initPosTexID);
55    cgGLEnableTextureParameter(_initPosTexParam);
56
57    cgGLEnableProfile(CG_PROFILE_FP30);
58}
Note: See TracBrowser for help on using the repository browser.