Changeset 2956 for trunk/packages/vizservers/nanovis
- Timestamp:
- Apr 9, 2012, 8:13:08 PM (13 years ago)
- Location:
- trunk/packages/vizservers/nanovis
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/HeightMap.cpp
r2953 r2956 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 3 2 #include <GL/glew.h> 4 #include <Cg/cgGL.h>5 3 6 4 #include "Grid.h" … … 18 16 HeightMap::HeightMap() : 19 17 _vertexBufferObjectID(0), 20 _tex tureBufferObjectID(0),18 _texcoordBufferObjectID(0), 21 19 _vertexCount(0), 22 20 _contour(0), … … 36 34 _shader = new NvShader(); 37 35 _shader->loadFragmentProgram("heightcolor.cg", "main"); 38 _tfParam = _shader->getNamedParameterFromFP("tf");39 _opacityParam = _shader->getNamedParameterFromFP("opacity");40 36 } 41 37 … … 44 40 reset(); 45 41 46 if (_shader ) {42 if (_shader != NULL) { 47 43 delete _shader; 48 44 } … … 96 92 // 97 93 _shader->bind(); 98 99 cgGLSetTextureParameter(_tfParam, _tfPtr->id()); 100 cgGLEnableTextureParameter(_tfParam); 101 cgGLSetParameter1f(_opacityParam, _opacity); 94 _shader->setFPTextureParameter("tf", _tfPtr->id()); 95 _shader->setFPParameter1f("opacity", _opacity); 102 96 103 97 glEnable(GL_TEXTURE_1D); … … 110 104 glVertexPointer(3, GL_FLOAT, 12, 0); 111 105 112 glBindBuffer(GL_ARRAY_BUFFER, _tex tureBufferObjectID);106 glBindBuffer(GL_ARRAY_BUFFER, _texcoordBufferObjectID); 113 107 glTexCoordPointer(3, GL_FLOAT, 12, 0); 114 108 … … 129 123 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 130 124 125 _shader->disableFPTextureParameter("tf"); 131 126 _shader->unbind(); 132 127 } … … 238 233 _vertexBufferObjectID = 0; 239 234 } 240 if (_tex tureBufferObjectID) {241 glDeleteBuffers(1, &_tex tureBufferObjectID);242 _tex tureBufferObjectID = 0;235 if (_texcoordBufferObjectID) { 236 glDeleteBuffers(1, &_texcoordBufferObjectID); 237 _texcoordBufferObjectID = 0; 243 238 } 244 239 if (_contour != NULL) { … … 251 246 } 252 247 } 253 248 #if 0 254 249 void 255 250 HeightMap::setHeight(int xCount, int yCount, Vector3 *heights) … … 293 288 glBufferData(GL_ARRAY_BUFFER, _vertexCount * sizeof( Vector3 ), heights, 294 289 GL_STATIC_DRAW); 295 glGenBuffers(1, &_tex tureBufferObjectID);296 glBindBuffer(GL_ARRAY_BUFFER, _tex tureBufferObjectID);290 glGenBuffers(1, &_texcoordBufferObjectID); 291 glBindBuffer(GL_ARRAY_BUFFER, _texcoordBufferObjectID); 297 292 glBufferData(GL_ARRAY_BUFFER, _vertexCount * sizeof(float) * 3, texcoord, 298 293 GL_STATIC_DRAW); … … 324 319 //} 325 320 } 326 321 #endif 327 322 void 328 323 HeightMap::setHeight(float xMin, float yMin, float xMax, float yMax, … … 385 380 glBufferData(GL_ARRAY_BUFFER, _vertexCount * sizeof(Vector3), map, 386 381 GL_STATIC_DRAW); 387 glGenBuffers(1, &_tex tureBufferObjectID);388 glBindBuffer(GL_ARRAY_BUFFER, _tex tureBufferObjectID);382 glGenBuffers(1, &_texcoordBufferObjectID); 383 glBindBuffer(GL_ARRAY_BUFFER, _texcoordBufferObjectID); 389 384 glBufferData(GL_ARRAY_BUFFER, _vertexCount * sizeof(float) * 3, texcoord, 390 385 GL_STATIC_DRAW); … … 485 480 glBufferData(GL_ARRAY_BUFFER, _vertexCount * sizeof(Vector3), vertices, 486 481 GL_STATIC_DRAW); 487 glGenBuffers(1, &_tex tureBufferObjectID);488 glBindBuffer(GL_ARRAY_BUFFER, _tex tureBufferObjectID);482 glGenBuffers(1, &_texcoordBufferObjectID); 483 glBindBuffer(GL_ARRAY_BUFFER, _texcoordBufferObjectID); 489 484 glBufferData(GL_ARRAY_BUFFER, _vertexCount * sizeof(float) * 3, texcoord, 490 485 GL_STATIC_DRAW); … … 569 564 if (_tfPtr != NULL) { 570 565 _shader->bind(); 571 572 cgGLSetTextureParameter(_tfParam, _tfPtr->id()); 573 cgGLEnableTextureParameter(_tfParam); 566 567 _shader->setFPTextureParameter("tf", _tfPtr->id()); 574 568 575 569 glEnable(GL_TEXTURE_1D); … … 584 578 glVertexPointer(3, GL_FLOAT, 12, 0); 585 579 586 glBindBuffer(GL_ARRAY_BUFFER, _tex tureBufferObjectID);580 glBindBuffer(GL_ARRAY_BUFFER, _texcoordBufferObjectID); 587 581 glTexCoordPointer(3, GL_FLOAT, 12, 0); 588 582 … … 603 597 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 604 598 599 _shader->disableFPTextureParameter("tf"); 605 600 _shader->unbind(); 606 601 } -
trunk/packages/vizservers/nanovis/HeightMap.h
r2953 r2956 2 2 #ifndef HEIGHTMAP_H 3 3 #define HEIGHTMAP_H 4 5 #include <Cg/cg.h>6 4 7 5 #include <R2/graphics/R2Geometry.h> … … 46 44 void setHeight(float startX, float startY, float endX, float endY, 47 45 int xCount, int yCount, float *height); 48 46 #if 0 49 47 /** 50 48 *@brief Create a height map with a set of points … … 53 51 */ 54 52 void setHeight(int xCount, int yCount, Vector3 *heights); 55 53 #endif 56 54 void mapToGrid(Grid *gridPtr); 57 55 … … 133 131 134 132 unsigned int _vertexBufferObjectID; 135 unsigned int _tex tureBufferObjectID;133 unsigned int _texcoordBufferObjectID; 136 134 int _vertexCount; 137 CGparameter _tfParam;138 CGparameter _opacityParam;139 135 R2Geometry *_contour; 140 136 R2Geometry *_topContour; -
trunk/packages/vizservers/nanovis/NvColorTableShader.cpp
r2953 r2956 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 3 #include <GL/glew.h>4 #include <Cg/cgGL.h>5 6 2 #include "NvColorTableShader.h" 7 #include "Trace.h"8 3 9 4 NvColorTableShader::NvColorTableShader() … … 19 14 { 20 15 loadFragmentProgram("one_plane.cg", "main"); 21 _dataParam = getNamedParameterFromFP("data");22 _tfParam = getNamedParameterFromFP("tf");23 _renderParam = getNamedParameterFromFP("render_param");24 16 } 25 17 26 18 void NvColorTableShader::bind(Texture2D *plane, TransferFunction *tf) 27 19 { 28 cgGLSetTextureParameter(_dataParam, plane->id()); 29 cgGLSetTextureParameter(_tfParam, tf->id()); 30 cgGLEnableTextureParameter(_dataParam); 31 cgGLEnableTextureParameter(_tfParam); 32 cgGLSetParameter4f(_renderParam, 0., 0., 0., 0.); 20 setFPTextureParameter("data", plane->id()); 21 setFPTextureParameter("tf", tf->id()); 22 23 setFPParameter4f("render_param", 0., 0., 0., 0.); 33 24 34 25 NvShader::bind(); … … 37 28 void NvColorTableShader::unbind() 38 29 { 39 cgGLDisableTextureParameter(_dataParam);40 cgGLDisableTextureParameter(_tfParam);30 disableFPTextureParameter("data"); 31 disableFPTextureParameter("tf"); 41 32 42 33 NvShader::unbind(); -
trunk/packages/vizservers/nanovis/NvColorTableShader.h
r2914 r2956 2 2 #ifndef NV_COLORTABLE_SHADER_H 3 3 #define NV_COLORTABLE_SHADER_H 4 5 #include <Cg/cg.h>6 4 7 5 #include "NvShader.h" … … 22 20 private : 23 21 void init(); 24 25 CGparameter _dataParam;26 CGparameter _tfParam;27 CGparameter _renderParam;28 22 }; 29 23 -
trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.cpp
r2953 r2956 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 3 #include <GL/glew.h>4 #include <Cg/cgGL.h>5 6 2 #include "NvParticleAdvectionShader.h" 7 #include "Trace.h"8 3 9 4 NvParticleAdvectionShader::NvParticleAdvectionShader() : … … 24 19 { 25 20 loadFragmentProgram("update_pos.cg", "main"); 26 _posTexParam = getNamedParameterFromFP("pos_tex");27 _initPosTexParam = getNamedParameterFromFP("init_pos_tex");28 _velTexParam = getNamedParameterFromFP("vel_tex");29 _posTimestepParam = getNamedParameterFromFP("timestep");30 _maxParam = getNamedParameterFromFP("max");31 _modeParam = getNamedParameterFromFP("mode");32 _scaleParam = getNamedParameterFromFP("scale");33 21 } 34 22 … … 36 24 NvParticleAdvectionShader::bind(unsigned int texID, unsigned int initPosTexID) 37 25 { 38 cgGLSetTextureParameter(_posTexParam, texID); 39 cgGLEnableTextureParameter(_posTexParam); 26 setFPTextureParameter("pos_tex", texID); 27 setFPTextureParameter("init_pos_tex", initPosTexID); 28 setFPTextureParameter("vel_tex", _velocityVolumeID); 40 29 41 cgGLSetTextureParameter(_initPosTexParam, initPosTexID); 42 cgGLEnableTextureParameter(_initPosTexParam); 43 44 cgGLSetTextureParameter(_velTexParam, _velocityVolumeID); 45 cgGLEnableTextureParameter(_velTexParam); 46 47 cgGLSetParameter1f(_posTimestepParam, _timeStep); 48 cgGLSetParameter1f(_maxParam, _max); 49 cgGLSetParameter1f(_modeParam, _mode); 50 cgGLSetParameter3f(_scaleParam, _scale.x, _scale.y, _scale.z); 30 setFPParameter1f("timestep", _timeStep); 31 setFPParameter1f("max", _max); 32 setFPParameter1f("mode", _mode); 33 setFPParameter3f("scale", _scale.x, _scale.y, _scale.z); 51 34 52 35 NvShader::bind(); … … 56 39 NvParticleAdvectionShader::unbind() 57 40 { 58 cgGLDisableTextureParameter(_posTexParam);59 cgGLDisableTextureParameter(_initPosTexParam);60 cgGLDisableTextureParameter(_velTexParam);41 disableFPTextureParameter("pos_tex"); 42 disableFPTextureParameter("init_pos_tex"); 43 disableFPTextureParameter("vel_tex"); 61 44 62 45 NvShader::unbind(); -
trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.h
r2953 r2956 44 44 void init(); 45 45 46 CGparameter _posTexParam;47 CGparameter _initPosTexParam;48 CGparameter _velTexParam;49 CGparameter _posTimestepParam;50 CGparameter _maxParam;51 CGparameter _modeParam;52 CGparameter _scaleParam;53 54 46 unsigned int _velocityVolumeID; 55 47 Vector3 _scale; -
trunk/packages/vizservers/nanovis/NvParticleRenderer.cpp
r2953 r2956 88 88 GL_TEXTURE_RECTANGLE_ARB, _psysTex[0], 0); 89 89 90 CHECK_FRAMEBUFFER_STATUS(); 90 91 91 92 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, _psysFbo[1]); … … 104 105 GL_TEXTURE_RECTANGLE_ARB, _psysTex[1], 0); 105 106 107 CHECK_FRAMEBUFFER_STATUS(); 108 106 109 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboOrig); 107 110 … … 117 120 _psysWidth, _psysHeight, 0, GL_RGBA, GL_FLOAT, NULL); 118 121 #endif 119 120 CHECK_FRAMEBUFFER_STATUS();121 122 122 123 if (_advectionShader == NULL) { … … 312 313 } 313 314 314 void315 NvParticleRenderer::drawBoundingBox(float x0, float y0, float z0,316 float x1, float y1, float z1,317 float r, float g, float b,318 float line_width)319 {320 glPushAttrib(GL_ENABLE_BIT);321 322 glEnable(GL_DEPTH_TEST);323 glDisable(GL_TEXTURE_2D);324 glEnable(GL_BLEND);325 326 glColor4d(r, g, b, 1.0);327 glLineWidth(line_width);328 329 glBegin(GL_LINE_LOOP);330 {331 glVertex3d(x0, y0, z0);332 glVertex3d(x1, y0, z0);333 glVertex3d(x1, y1, z0);334 glVertex3d(x0, y1, z0);335 }336 glEnd();337 338 glBegin(GL_LINE_LOOP);339 {340 glVertex3d(x0, y0, z1);341 glVertex3d(x1, y0, z1);342 glVertex3d(x1, y1, z1);343 glVertex3d(x0, y1, z1);344 }345 glEnd();346 347 glBegin(GL_LINE_LOOP);348 {349 glVertex3d(x0, y0, z0);350 glVertex3d(x0, y0, z1);351 glVertex3d(x0, y1, z1);352 glVertex3d(x0, y1, z0);353 }354 glEnd();355 356 glBegin(GL_LINE_LOOP);357 {358 glVertex3d(x1, y0, z0);359 glVertex3d(x1, y0, z1);360 glVertex3d(x1, y1, z1);361 glVertex3d(x1, y1, z0);362 }363 glEnd();364 365 glPopAttrib();366 }367 368 315 void 369 316 NvParticleRenderer::render() … … 382 329 glScaled(_scale.x, _scale.y, _scale.z); 383 330 384 // TBD...385 /*386 drawBoundingBox(0, 0, 0,387 1, 1, 1,388 1, 1, 1, 2);389 390 drawBoundingBox(0, 0.5f / 4.5f, 0.5f / 4.5,391 1, 4.0f / 4.5f, 4.0f / 4.5,392 1, 0, 0, 2);393 394 drawBoundingBox(1/3.0f, 1.0f / 4.5f, 0.5f / 4.5,395 2/3.0f, 3.5f / 4.5f, 3.5f / 4.5,396 1, 1, 0, 2);397 */398 399 331 glPointSize(_particleSize); 400 332 glColor4f(_color.x, _color.y, _color.z, _color.w); 333 401 334 glEnableClientState(GL_VERTEX_ARRAY); 402 335 _vertexArray->setPointer(0); … … 405 338 406 339 glPopMatrix(); 407 408 340 glPopAttrib(); 409 410 //assert(glGetError()==0);411 341 } 412 342 -
trunk/packages/vizservers/nanovis/NvParticleRenderer.h
r2953 r2956 16 16 #ifndef NVPARTICLERENDERER_H 17 17 #define NVPARTICLERENDERER_H 18 19 #include <vector>20 21 #include <GL/glew.h>22 #include <Cg/cgGL.h>23 18 24 19 #include "Renderable.h" … … 81 76 void setPos(float pos); 82 77 83 void drawBoundingBox(float x0, float y0, float z0,84 float x1, float y1, float z1,85 float r, float g, float b, float line_width);86 87 78 void initializeDataArray(); 88 79 -
trunk/packages/vizservers/nanovis/NvStdVertexShader.cpp
r2953 r2956 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 3 #include <GL/glew.h>4 #include <Cg/cgGL.h>5 6 2 #include "NvStdVertexShader.h" 7 3 … … 18 14 { 19 15 loadVertexProgram("vertex_std.cg", "main"); 20 _mvpVertStdParam = getNamedParameterFromVP("modelViewProjMatrix");21 _mviVertStdParam = getNamedParameterFromVP("modelViewInv");22 16 } 23 17 24 18 void NvStdVertexShader::bind() 25 19 { 26 cgGLSetStateMatrixParameter(_mvpVertStdParam, CG_GL_MODELVIEW_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY);27 cgGLSetStateMatrixParameter(_mviVertStdParam, CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_INVERSE);20 setGLStateMatrixVPParameter("modelViewProjMatrix", MODELVIEW_PROJECTION_MATRIX, MATRIX_IDENTITY); 21 setGLStateMatrixVPParameter("modelViewInv", MODELVIEW_MATRIX, MATRIX_INVERSE); 28 22 29 23 NvShader::bind(); -
trunk/packages/vizservers/nanovis/NvStdVertexShader.h
r2914 r2956 21 21 private: 22 22 void init(); 23 24 /// A parameter id for ModelViewProjection matrix of Cg program25 CGparameter _mvpVertStdParam;26 27 /// A parameter id for ModelViewInverse matrix of Cg program28 CGparameter _mviVertStdParam;29 23 }; 30 24 -
trunk/packages/vizservers/nanovis/PointShader.cpp
r2953 r2956 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 3 #include <GL/glew.h>4 #include <Cg/cgGL.h>5 6 2 #include "PointShader.h" 7 3 … … 12 8 { 13 9 loadVertexProgram("pointsvp.cg", "main"); 14 _modelviewVP = getNamedParameterFromVP("modelview");15 _projectionVP = getNamedParameterFromVP("projection");16 _attenVP = getNamedParameterFromVP("atten");17 _posoffsetVP = getNamedParameterFromVP("posoffset");18 _baseposVP = getNamedParameterFromVP("basepos");19 _scaleVP = getNamedParameterFromVP("scale");20 _normalParam = getNamedParameterFromVP("normal");21 10 } 22 11 … … 27 16 void PointShader::bind() 28 17 { 29 cgGLSetStateMatrixParameter(_modelviewVP, CG_GL_MODELVIEW_MATRIX, CG_GL_MATRIX_IDENTITY);30 cgGLSetStateMatrixParameter(_projectionVP, CG_GL_PROJECTION_MATRIX, CG_GL_MATRIX_IDENTITY);18 setGLStateMatrixVPParameter("modelview", MODELVIEW_MATRIX, MATRIX_IDENTITY); 19 setGLStateMatrixVPParameter("projection", PROJECTION_MATRIX, MATRIX_IDENTITY); 31 20 32 cgGLSetParameter1f(_attenVP, 1.0f); 33 cgGLSetParameter4f(_posoffsetVP, 1.0f, 1.0f, 1.0f, 1.0f); 34 cgGLSetParameter4f(_baseposVP, 1.0f, 1.0f, 1.0f, 1.0f); 35 cgGLSetParameter4f(_scaleVP, _scale, 1.0f, 1.0f, 1.0f); 36 37 //cgGLSetTextureParameter(_normalParam, _normal->getGraphicsObjectID()); 38 //cgGLEnableTextureParameter(_normalParam); 21 setVPParameter1f("atten", 1.0f); 22 setVPParameter4f("posoffset", 1.0f, 1.0f, 1.0f, 1.0f); 23 setVPParameter4f("basepos", 1.0f, 1.0f, 1.0f, 1.0f); 24 setVPParameter4f("scale", _scale, 1.0f, 1.0f, 1.0f); 25 //setVPTextureParameter("normal", _normal->getGraphicsObjectID()); 39 26 40 27 NvShader::bind(); … … 43 30 void PointShader::unbind() 44 31 { 45 // cgGLDisableTextureParameter(_normalParam);32 //disableVPTextureParameter("normal"); 46 33 47 34 NvShader::unbind(); -
trunk/packages/vizservers/nanovis/PointShader.h
r2953 r2956 25 25 virtual void bind(); 26 26 27 virtual 27 virtual void unbind(); 28 28 29 29 private: 30 CGparameter _modelviewVP; 31 CGparameter _projectionVP; 32 33 CGparameter _attenVP; 34 CGparameter _posoffsetVP; 35 CGparameter _baseposVP; 36 CGparameter _scaleVP; 37 CGparameter _normalParam; 38 30 float _scale; 39 31 float _scale; 40 32 Texture3D *_normal; -
trunk/packages/vizservers/nanovis/shaders/update_pos.cg
r2916 r2956 49 49 50 50 //reconstruct negative value 51 float4 vel = float4(tex3D(vel_tex, pos.xyz).yzw, 0 ) - float4(0.5, 0.5, 0.5, 0.0f);52 vel = vel * (2 * max);51 float4 vel = float4(tex3D(vel_tex, pos.xyz).yzw, 0.0) * 2.0 - float4(1.0, 1.0, 1.0, 0.0f); 52 vel = vel * max; 53 53 //vel *= float4(scale, 1); 54 54 ret = pos + (vel * timestep);
Note: See TracChangeset
for help on using the changeset viewer.