Skip to content

DavinderMaverick/VolumeRaycasting

Repository files navigation

VolumeRaycasting

Transfer Function Only

image

+ Shading

image

Usage

Press 1 -> Transfer Function Only
Press 2 -> Shading Enabled
Esc -> Quit

Mouse Click and Drag -> Rotate View
Mouse Scroll Wheel -> Zoom In/Out

Project Dependencies

  1. opengl
  2. glad
  3. glfw
  4. glm
  5. stb

Using Different Volume Data

  1. Delete the gradients.bin file.

  2. Change the Input File Name

    if (!LoadVolume("male.raw"))

  3. These will be the list of transfer control points that we will setup and interpolate to produce the transfer function.

    You need to specify at least two control points at isovalues 0 and 256 for both alpha and color. Also the control points need to be ordered (low to high) by the isovalue. So the first entry in the list should always be the RGB/alpha value for the zero isovalue, and the last entry should always be the RGB/alpha value for the 256 isovalue.

    VolumeRaycasting/main.cpp

    Lines 154 to 169 in 14263af

    vector<TransferFunctionControlPoint> colorKnots = {
    TransferFunctionControlPoint(.91f, .7f, .61f, 0),
    TransferFunctionControlPoint(.91f, .7f, .61f, 80),
    TransferFunctionControlPoint(1.0f, 1.0f, .85f, 82),
    TransferFunctionControlPoint(1.0f, 1.0f, .85f, 256)
    };
    vector<TransferFunctionControlPoint> alphaKnots = {
    TransferFunctionControlPoint(0.0f, 0),
    TransferFunctionControlPoint(0.0f, 40),
    TransferFunctionControlPoint(0.2f, 60),
    TransferFunctionControlPoint(0.05f, 63),
    TransferFunctionControlPoint(0.0f, 80),
    TransferFunctionControlPoint(0.9f, 82),
    TransferFunctionControlPoint(1.0f, 256)
    };

About

Volume Data Rendering using GPU Raycasting/Raymarching

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published