Changeset 1546


Ignore:
Timestamp:
Jul 7, 2009 3:52:10 PM (15 years ago)
Author:
gah
Message:

add transparency to heightmap

Location:
trunk/packages/vizservers/nanovis
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/nanovis/Command.cpp

    r1544 r1546  
    20312031}
    20322032
     2033
     2034static int
     2035HeightMapOpacityOp(ClientData clientData, Tcl_Interp *interp, int objc,
     2036                   Tcl_Obj *const *objv)
     2037{
     2038    float opacity;
     2039    if (GetFloatFromObj(interp, objv[2], &opacity) != TCL_OK) {
     2040        return TCL_ERROR;
     2041    }
     2042    vector<HeightMap *> heightmaps;
     2043    if (GetHeightMaps(interp, objc - 3, objv + 3, &heightmaps) != TCL_OK) {
     2044        return TCL_ERROR;
     2045    }
     2046    vector<HeightMap *>::iterator iter;
     2047    for (iter = heightmaps.begin(); iter != heightmaps.end(); iter++) {
     2048        (*iter)->opacity(opacity);
     2049    }
     2050    return TCL_OK;
     2051}
     2052
    20332053static Rappture::CmdSpec heightMapOps[] = {
    20342054    {"create",       2, HeightMapCreateOp,      10, 10,
     
    20382058    {"legend",       2, HeightMapLegendOp,      5, 5, "index width height",},
    20392059    {"linecontour",  2, HeightMapLineContourOp, 2, 0, "oper ?args?",},
     2060    {"opacity",      1, HeightMapOpacityOp,     3, 0, "value ?heightmap...? ",},
    20402061    {"polygon",      1, HeightMapPolygonOp,     3, 3, "mode",},
    20412062    {"shading",      1, HeightMapShadingOp,     3, 3, "model",},
    20422063    {"test",         2, HeightMapTestOp,        2, 2, "",},
    2043     {"transfunc",    2, HeightMapTransFuncOp,   3, 0, "name ?indices?",},
     2064    {"transfunc",    2, HeightMapTransFuncOp,   3, 0, "name ?heightmap...?",},
    20442065
    20452066    // HELP ME
  • trunk/packages/vizservers/nanovis/HeightMap.cpp

    r1493 r1546  
    3131    _topContour(0),
    3232    _tfPtr(0),
     33    _opacity(0.5f),
    3334    _indexBuffer(0),
    3435    _indexCount(0),
     
    4344    _shader = new NvShader();
    4445    _shader->loadFragmentProgram("heightcolor.cg", "main");
    45     _tfParam = _shader->getNamedParameterFromFP("tf");
     46    _tfParam      = _shader->getNamedParameterFromFP("tf");
     47    _opacityParam = _shader->getNamedParameterFromFP("opacity");
    4648}
    4749
     
    103105            cgGLSetTextureParameter(_tfParam, _tfPtr->id());
    104106            cgGLEnableTextureParameter(_tfParam);
     107            cgGLSetParameter1f(_opacityParam, _opacity);
    105108           
    106109            glEnable(GL_TEXTURE_1D);
     
    143146            glDisable(GL_BLEND);
    144147            glDisable(GL_TEXTURE_2D);
    145             glColor4f(_contourColor.x, _contourColor.y, _contourColor.z, 1.0f);
     148            glColor4f(_contourColor.x, _contourColor.y, _contourColor.z,
     149                _opacity /*1.0f*/);
    146150            glDepthRange (0.0, 0.999);
    147151            _contour->render();
     
    153157            glDisable(GL_BLEND);
    154158            glDisable(GL_TEXTURE_2D);
    155             glColor4f(_contourColor.x, _contourColor.y, _contourColor.z, 1.0f);
     159            glColor4f(_contourColor.x, _contourColor.y, _contourColor.z,
     160                _opacity /*1.0f*/);
    156161            //glDepthRange (0.0, 0.999);
    157162            _topContour->render();
  • trunk/packages/vizservers/nanovis/HeightMap.h

    r1493 r1546  
    2727    int _vertexCount;
    2828    CGparameter _tfParam;
     29    CGparameter _opacityParam;
    2930    R2Geometry* _contour;
    3031    R2Geometry* _topContour;
    3132    TransferFunction* _tfPtr;
     33    float _opacity;
    3234    NvShader* _shader;
    3335    int *_indexBuffer;
     
    4143    Vector3 _scale;
    4244    Vector3 _centerPoint;
    43 
    4445    int xNum_, yNum_;           // Number of elements x and y axes in grid.
    4546    float *heights_;            // Array of original (unscaled) heights
     
    123124    }
    124125
     126    void opacity(float opacity) {
     127        _opacity = opacity;
     128    }
     129    float opacity(void) {
     130        return _opacity;
     131    }
    125132    /**
    126133     *@brief Defind the color of the line contour
  • trunk/packages/vizservers/nanovis/shaders/heightcolor.cg

    r776 r1546  
    11
    2 float4 main(float4 texCoord : TEXCOORD0,
    3         uniform sampler1D tf) : COLOR
     2float4 main(
     3    float4 texCoord : TEXCOORD0,
     4    uniform float opacity,
     5    uniform sampler1D tf) : COLOR
    46{
    5         float4 color;
    6         color.xyz = tex1D(tf, texCoord.z).xyz;
    7         color.w = 1.0f;
    8         return color;
     7    float4 color = tex1D(tf, texCoord.z);
     8    color.w = opacity;
     9    return color;
    910}
Note: See TracChangeset for help on using the changeset viewer.