source: trunk/packages/vizservers/nanovis/NvZincBlendeVolumeShader.cpp @ 3423

Last change on this file since 3423 was 3362, checked in by ldelgass, 11 years ago

Merge nanovis2 branch to trunk

  • Property svn:eol-style set to native
File size: 1.4 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
3#include "NvZincBlendeVolumeShader.h"
4
5NvZincBlendeVolumeShader::NvZincBlendeVolumeShader()
6{
7    init();
8}
9
10NvZincBlendeVolumeShader::~NvZincBlendeVolumeShader()
11{
12}
13
14void NvZincBlendeVolumeShader::init()
15{
16    loadFragmentProgram("zincblende_volume.cg", "main");
17}
18
19void NvZincBlendeVolumeShader::bind(unsigned int tfID, Volume *volume,
20                                    int sliceMode, float sampleRatio)
21{
22    ZincBlendeVolume *vol = (ZincBlendeVolume *)volume;
23    setGLStateMatrixFPParameter("modelViewInv", MODELVIEW_MATRIX,
24                                MATRIX_INVERSE);
25
26    setFPTextureParameter("tf", tfID);
27    setFPTextureParameter("volumeA", vol->zincblendeTex[0]->id());
28    setFPTextureParameter("volumeB", vol->zincblendeTex[1]->id());
29
30    setFPParameter4f("cellSize",
31                     vol->cellSize.x,
32                     vol->cellSize.y,
33                     vol->cellSize.z, 0.);
34
35    setFPParameter4f("renderParams",
36                     (sliceMode ? 0.0f : sampleRatio),
37                     volume->isosurface(),
38                     volume->opacityScale(),
39                     0.0f);
40
41    NvShader::bind();
42}
43
44void NvZincBlendeVolumeShader::unbind()
45{
46    disableFPTextureParameter("tf");
47    disableFPTextureParameter("volumeA");
48    disableFPTextureParameter("volumeB");
49
50    NvShader::unbind();
51}
Note: See TracBrowser for help on using the repository browser.