source: branches/blt4/packages/vizservers/nanovis/NvRegularVolumeShader.cpp @ 3061

Last change on this file since 3061 was 3061, checked in by gah, 12 years ago
File size: 1.5 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
3#include "NvRegularVolumeShader.h"
4
5NvRegularVolumeShader::NvRegularVolumeShader()
6{
7    init();
8}
9
10NvRegularVolumeShader::~NvRegularVolumeShader()
11{
12}
13
14void NvRegularVolumeShader::init()
15{
16    loadFragmentProgram("one_volume.cg", "main");
17}
18
19void NvRegularVolumeShader::bind(unsigned int tfID, Volume *volume, int sliceMode)
20{
21    //regular cubic volume
22    setGLStateMatrixFPParameter("modelViewInv", MODELVIEW_MATRIX,
23                                MATRIX_INVERSE);
24    setGLStateMatrixFPParameter("modelView", MODELVIEW_MATRIX,
25                                MATRIX_IDENTITY);
26
27    setFPTextureParameter("volume", volume->id);
28    setFPTextureParameter("tf", tfID);
29
30    if (!sliceMode) {
31        setFPParameter4f("renderParameters",
32                         volume->numSlices(),
33                         volume->opacityScale(),
34                         volume->diffuse(),
35                         volume->specular());
36    } else {
37        setFPParameter4f("renderParameters",
38                         0.,
39                         volume->opacityScale(),
40                         volume->diffuse(),
41                         volume->specular());
42    }
43
44    setFPParameter4f("options",
45                     0.0f,
46                     volume->isosurface(),
47                     0.0f,
48                     0.0f);
49
50    NvShader:: bind();
51}
52
53void NvRegularVolumeShader::unbind()
54{
55    disableFPTextureParameter("volume");
56    disableFPTextureParameter("tf");
57
58    NvShader::unbind();
59}
Note: See TracBrowser for help on using the repository browser.