source: nanovis/branches/1.1/RegularVolumeShader.cpp @ 5724

Last change on this file since 5724 was 4904, checked in by ldelgass, 9 years ago

Merge serveral changes from trunk. Does not include threading, world space
changes, etc.

  • Property svn:eol-style set to native
File size: 1.4 KB
RevLine 
[2798]1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
[3502]2/*
3 * Copyright (c) 2004-2013  HUBzero Foundation, LLC
4 *
5 */
[3612]6#include "RegularVolumeShader.h"
[580]7
[3611]8using namespace nv;
9
[3612]10RegularVolumeShader::RegularVolumeShader()
[580]11{
12    init();
13}
14
[3612]15RegularVolumeShader::~RegularVolumeShader()
[580]16{
17}
18
[3612]19void RegularVolumeShader::init()
[580]20{
[4904]21    loadFragmentProgram("one_volume.cg");
[580]22}
23
[3612]24void RegularVolumeShader::bind(unsigned int tfID, Volume *volume,
[4904]25                               int sliceMode, float sampleRatio)
[2859]26{
27    //regular cubic volume
[2971]28    setGLStateMatrixFPParameter("modelViewInv", MODELVIEW_MATRIX,
29                                MATRIX_INVERSE);
30    setGLStateMatrixFPParameter("modelView", MODELVIEW_MATRIX,
31                                MATRIX_IDENTITY);
[580]32
[3362]33    setFPTextureParameter("volume", volume->textureID());
[2971]34    setFPTextureParameter("tf", tfID);
[2859]35
[3362]36    setFPParameter4f("material",
37                     volume->ambient(),
38                     volume->diffuse(),
39                     volume->specularLevel(),
40                     volume->specularExponent());
[2859]41
[3362]42    setFPParameter4f("renderParams",
43                     (sliceMode ? 0.0f : sampleRatio),
[2971]44                     volume->isosurface(),
[3362]45                     volume->opacityScale(),
46                     (volume->twoSidedLighting() ? 1.0f : 0.0f));
[2859]47
[3612]48    Shader:: bind();
[2859]49}
50
[3612]51void RegularVolumeShader::unbind()
[2859]52{
[2971]53    disableFPTextureParameter("volume");
54    disableFPTextureParameter("tf");
[2859]55
[3612]56    Shader::unbind();
[2859]57}
Note: See TracBrowser for help on using the repository browser.