Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

OptiXRenderer.C File Reference

VMD built-in Tachyon/OptiX ray tracing engine. More...

#include "OptiXRenderer.h"
#include "OptiXShaders.h"
#include <optix.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "VMDApp.h"
#include "VideoStream.h"
#include "DisplayDevice.h"
#include "Inform.h"
#include "ImageIO.h"
#include "Matrix4.h"
#include "utilities.h"
#include "WKFUtils.h"
#include "ProfileHooks.h"

Go to the source code of this file.

Defines

#define ORT_USE_HW_TRIANGLES   1
#define RTERR(func)
#define RTERR2(func, code)
#define ORT_AS_BUILD_MEM_HEURISTIC   1

Functions

const char * onoffstr (int onoff)
OptiXRenderer::Verbosity get_verbose_flag (int inform=0)
int query_meminfo_ctx_devices (RTcontext &ctx, unsigned long &freemem, unsigned long &physmem)
int OptiXPrintRayStats (RTbuffer raystats1_buffer, RTbuffer raystats2_buffer, double rtruntime)
int OptiXWriteImage (const char *filename, int writealpha, RTbuffer buffer, RTformat buffer_format, RTsize buffer_width, RTsize buffer_height)
int OptiXWriteImage (const char *filename, int writealpha, RTbuffer buffer)


Detailed Description

VMD built-in Tachyon/OptiX ray tracing engine.

This work is described in: "GPU-Accelerated Molecular Visualization on Petascale Supercomputing Platforms" John E. Stone, Kirby L. Vandivort, and Klaus Schulten. UltraVis'13: Proceedings of the 8th International Workshop on Ultrascale Visualization, pp. 6:1-6:8, 2013. http://dx.doi.org/10.1145/2535571.2535595

"Atomic Detail Visualization of Photosynthetic Membranes with GPU-Accelerated Ray Tracing" John E. Stone, Melih Sener, Kirby L. Vandivort, Angela Barragan, Abhishek Singharoy, Ivan Teo, João V. Ribeiro, Barry Isralewitz, Bo Liu, Boon Chong Goh, James C. Phillips, Craig MacGregor-Chatwin, Matthew P. Johnson, Lena F. Kourkoutis, C. Neil Hunter, and Klaus Schulten J. Parallel Computing, 55:17-27, 2016. http://dx.doi.org/10.1016/j.parco.2015.10.015

"Immersive Molecular Visualization with Omnidirectional Stereoscopic Ray Tracing and Remote Rendering" John E. Stone, William R. Sherman, and Klaus Schulten. High Performance Data Analysis and Visualization Workshop, 2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pp. 1048-1057, 2016. http://dx.doi.org/10.1109/IPDPSW.2016.121

"Omnidirectional Stereoscopic Projections for VR" John E. Stone. In, William R. Sherman, editor, VR Developer Gems, Taylor and Francis / CRC Press, Chapter 24, 2019.

"Interactive Ray Tracing Techniques for High-Fidelity Scientific Visualization" John E. Stone. In, Eric Haines and Tomas Akenine-Möller, editors, Ray Tracing Gems, Apress, Chapter 27, pp. 493-515, 2019. https://link.springer.com/book/10.1007/978-1-4842-4427-2

"A Planetarium Dome Master Camera" John E. Stone. In, Eric Haines and Tomas Akenine-Möller, editors, Ray Tracing Gems, Apress, Chapter 4, pp. 49-60, 2019. https://link.springer.com/book/10.1007/978-1-4842-4427-2

Portions of this code are derived from Tachyon: "An Efficient Library for Parallel Ray Tracing and Animation" John E. Stone. Master's Thesis, University of Missouri-Rolla, Department of Computer Science, April 1998

"Rendering of Numerical Flow Simulations Using MPI" John Stone and Mark Underwood. Second MPI Developers Conference, pages 138-141, 1996. http://dx.doi.org/10.1109/MPIDC.1996.534105

Definition in file OptiXRenderer.C.


Define Documentation

#define ORT_AS_BUILD_MEM_HEURISTIC   1
 

#define ORT_USE_HW_TRIANGLES   1
 

Definition at line 149 of file OptiXRenderer.C.

#define RTERR func   
 

Value:

{                                                                    \
    RTresult code = func;                                              \
    if (code != RT_SUCCESS) {                                          \
      lasterror = code;   \
      const char* message;                                             \
      rtContextGetErrorString(ctx, code, &message);                    \
      msgErr << "OptiXRenderer) ERROR: " << message << " ("            \
             << __FILE__ << ":" << __LINE__ << sendmsg;                \
    }                                                                  \
  }

Definition at line 217 of file OptiXRenderer.C.

Referenced by OptiXRenderer::create_context, OptiXRenderer::cylinder_array, OptiXRenderer::cylinder_array_color, OptiXRenderer::destroy_scene, OptiXRenderer::framebuffer_config, OptiXRenderer::framebuffer_destroy, OptiXRenderer::framebuffer_resize, OptiXRenderer::init_materials, query_meminfo_ctx_devices, OptiXRenderer::render_compile_and_validate, OptiXRenderer::render_to_file, OptiXRenderer::report_context_stats, OptiXRenderer::ring_array_color, OptiXRenderer::set_material, OptiXRenderer::setup_context, OptiXRenderer::sphere_array, OptiXRenderer::sphere_array_color, OptiXRenderer::tricolor_list, OptiXRenderer::trimesh_c4n3v3, OptiXRenderer::trimesh_c4u_n3b_v3f, OptiXRenderer::trimesh_c4u_n3f_v3f, OptiXRenderer::trimesh_n3b_v3f, OptiXRenderer::trimesh_n3f_v3f, OptiXRenderer::trimesh_v3f, OptiXRenderer::tristrip, and OptiXRenderer::update_rendering_state.

#define RTERR2 func,
code   
 

Value:

{                                                                    \
    code = func;                                                       \
    if (code != RT_SUCCESS) {                                          \
      lasterror = code;   \
      const char* message;                                             \
      rtContextGetErrorString(ctx, code, &message);                    \
      msgErr << "OptiXRenderer) ERROR: " << message << " ("            \
             << __FILE__ << ":" << __LINE__ << sendmsg;                \
    }                                                                  \
  }

Definition at line 233 of file OptiXRenderer.C.

Referenced by OptiXRenderer::create_context.


Function Documentation

OptiXRenderer::Verbosity get_verbose_flag int    inform = 0 [static]
 

Definition at line 152 of file OptiXRenderer.C.

References NULL, OptiXRenderer::RT_VERB_DEBUG, OptiXRenderer::RT_VERB_MIN, OptiXRenderer::RT_VERB_TIMING, strupcmp, and OptiXRenderer::Verbosity.

Referenced by OptiXRenderer::check_verbose_env, OptiXRenderer::device_count, OptiXRenderer::device_list, and OptiXRenderer::optix_version.

const char* onoffstr int    onoff [static]
 

Definition at line 143 of file OptiXRenderer.C.

Referenced by OptiXRenderer::init_materials, and OptiXRenderer::update_rendering_state.

int OptiXPrintRayStats RTbuffer    raystats1_buffer,
RTbuffer    raystats2_buffer,
double    rtruntime
 

Definition at line 426 of file OptiXRenderer.C.

References NULL, and result.

Referenced by OptiXRenderer::render_to_file.

int OptiXWriteImage const char *    filename,
int    writealpha,
RTbuffer    buffer
 

Definition at line 593 of file OptiXRenderer.C.

References NULL, result, write_image_file_rgb4f, write_image_file_rgb4u, write_image_file_rgba4f, and write_image_file_rgba4u.

Referenced by OptiXRenderer::render_to_file.

int OptiXWriteImage const char *    filename,
int    writealpha,
RTbuffer    buffer,
RTformat    buffer_format,
RTsize    buffer_width,
RTsize    buffer_height
 

Definition at line 529 of file OptiXRenderer.C.

References NULL, result, write_image_file_rgb4f, write_image_file_rgb4u, write_image_file_rgba4f, and write_image_file_rgba4u.

int query_meminfo_ctx_devices RTcontext &    ctx,
unsigned long &    freemem,
unsigned long &    physmem
[static]
 

Definition at line 380 of file OptiXRenderer.C.

References RTERR.

Referenced by OptiXRenderer::render_compile_and_validate.


Generated on Tue Apr 23 04:24:37 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002