fhrt_isoval_adapt.c File Reference

Handles Isovalue-Firsthit-rendermode. More...

#include "rendermodes.h"
#include "macros_isoval.h"

Defines

#define REFINE
#define SPIVIS
#define TEST_FHRT_ISOVAL_ADAPT
#define skymap_lookup(ftmpv, sc_off, zoff)
#define FOURER

Functions

void fhrt_isoval_adapt (rendersurf *rtsurf, uint32_t *voxel, float *ipos, float *ifor, float *iup, float *istr)
 Generate rays to cover the screen.

Variables

int pos_x
int pos_y
int pos_z
float ftmpv [4]
float ftmpv_CUBE [4]
float add_x [3]
float add_y [3]
int ADAPT_STEP
unsigned char diffborder
 unsigned char diffborder=10;
SDL_Surface * sky
uint32_t * sdata
int dist_estimate
int isect_pos


Detailed Description

Handles Isovalue-Firsthit-rendermode.

Binary search is employed in the area of interest to increase accuracy without a big hit on performance.


Function Documentation

void fhrt_isoval_adapt rendersurf *  rtsurf,
uint32_t *  voxel,
float *  ipos,
float *  ifor,
float *  iup,
float *  istr
 

Generate rays to cover the screen.

A simple adaptive raycasting-scheme is followed here. If the colors of adjacent coarse-grid-scanpoint differ too much, then new rays are cast. This happens "recursively" until either small enough blocks are reached, or the pixels don't differ too much and can therefore be filled with the "unique" color of the 4 adjacents pixels.

Parameters:
rtsurf Pointer to surface to draw to.
voxel Pointer to the 3D dataset.
ipos Pointer to the camera-position.
ifor Pointer to the camera-viewvector.
iup Pointer to the camera-upvector.
istr Pointer to the camera-strafevector.


Generated on Wed Dec 13 08:40:13 2006 for PHDVR - Direct Volume Renderer by  doxygen 1.4.6