Tachyon (current)  Current Main Branch
Macros | Functions
objloader.cpp File Reference

Loader for Wavefront OBJ scenes, using the "tiny_obj_loader" header-only loader library. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "ProfileHooks.h"
#include "tiny_obj_loader.h"
#include "stb_image_write.h"
#include "stb_image.h"
#include "TachyonOptiX.h"

Go to the source code of this file.

Macros

#define TINYOBJLOADER_IMPLEMENTATION
 
#define STB_IMAGE_WRITE_IMPLEMENTATION
 
#define STB_IMAGE_IMPLEMENTATION
 

Functions

static char * getmaterialdir (const char *filename)
 
static unsigned char * loadimage_rgba4u (const char *searchpath, const char *filename, int &xres, int &yres, int &chinfile)
 
void print_coords (float *coords, int numpts, int count)
 
int main (int argc, const char **argv)
 

Detailed Description

Loader for Wavefront OBJ scenes, using the "tiny_obj_loader" header-only loader library.

The Wavefront OBJ file format is described in detail here:
http://paulbourke.net/dataformats/mtl/

Definition in file objloader.cpp.

Macro Definition Documentation

◆ STB_IMAGE_IMPLEMENTATION

#define STB_IMAGE_IMPLEMENTATION

Definition at line 38 of file objloader.cpp.

◆ STB_IMAGE_WRITE_IMPLEMENTATION

#define STB_IMAGE_WRITE_IMPLEMENTATION

Definition at line 36 of file objloader.cpp.

◆ TINYOBJLOADER_IMPLEMENTATION

#define TINYOBJLOADER_IMPLEMENTATION

Definition at line 31 of file objloader.cpp.

Function Documentation

◆ getmaterialdir()

static char* getmaterialdir ( const char *  filename)
static

Definition at line 85 of file objloader.cpp.

Referenced by main().

◆ loadimage_rgba4u()

static unsigned char* loadimage_rgba4u ( const char *  searchpath,
const char *  filename,
int &  xres,
int &  yres,
int &  chinfile 
)
static

Definition at line 102 of file objloader.cpp.

References stbi_load().

Referenced by main().

◆ main()

int main ( int  argc,
const char **  argv 
)

static methods for querying OptiX-supprted GPU hardware independent of whether we actually have an active context.

Definition at line 148 of file objloader.cpp.

References TachyonOptiX::add_directional_light(), TachyonOptiX::add_material(), TachyonOptiX::add_material_textured(), TachyonOptiX::add_tex2d_rgba4u(), TachyonOptiX::add_trimesh(), TachyonOptiX::camera_dof_enable(), TachyonOptiX::denoiser_enable(), TachyonOptiX::device_count(), tinyobj::ObjReader::Error(), fmaxf(), TachyonOptiX::framebuffer_clear(), TachyonOptiX::framebuffer_colorspace(), TachyonOptiX::framebuffer_download_rgb4u(), TachyonOptiX::framebuffer_get_size(), TachyonOptiX::framebuffer_resize(), tinyobj::ObjReader::GetAttrib(), getmaterialdir(), tinyobj::ObjReader::GetMaterials(), tinyobj::ObjReader::GetShapes(), loadimage_rgba4u(), make_float3(), tinyobj::ObjReaderConfig::mtl_search_path, tinyobj::index_t::normal_index, TriangleMesh::normals, TachyonOptiX::optix_version(), tinyobj::ObjReader::ParseFromFile(), TachyonOptiX::print_raystats_info(), PROFILE_INITIALIZE, PROFILE_POP_RANGE, PROFILE_PUSH_RANGE, PROFILE_START, TachyonOptiX::render(), TachyonOptiX::RT_BACKGROUND_TEXTURE_SKY_SPHERE, RT_COLORSPACE_sRGB, TachyonOptiX::RT_FOG_NONE, TachyonOptiX::RT_PERSPECTIVE, RT_TEX_ALPHA, RT_TEX_NONE, TachyonOptiX::RT_VERB_MIN, TachyonOptiX::RT_VERB_TIMING, TachyonOptiX::set_aa_samples(), TachyonOptiX::set_ao_ambient(), TachyonOptiX::set_ao_direct(), TachyonOptiX::set_ao_maxdist(), TachyonOptiX::set_ao_samples(), TachyonOptiX::set_bg_color(), TachyonOptiX::set_bg_color_grad_bot(), TachyonOptiX::set_bg_color_grad_top(), TachyonOptiX::set_bg_gradient(), TachyonOptiX::set_bg_gradient_botval(), TachyonOptiX::set_bg_gradient_topval(), TachyonOptiX::set_bg_mode(), TachyonOptiX::set_camera_dof_fnumber(), TachyonOptiX::set_camera_dof_focal_dist(), TachyonOptiX::set_camera_lookat(), TachyonOptiX::set_camera_pos(), TachyonOptiX::set_camera_stereo_convergence_dist(), TachyonOptiX::set_camera_stereo_eyesep(), TachyonOptiX::set_camera_type(), TachyonOptiX::set_camera_zoom(), TachyonOptiX::set_cue_mode(), TachyonOptiX::set_verbose_mode(), TachyonOptiX::shadows_enable(), stbi_flip_vertically_on_write(), stbi_write_png(), TriangleMesh::tex2d, tinyobj::index_t::texcoord_index, TriangleMesh::uniform_color, tinyobj::index_t::vertex_index, TriangleMesh::vertices, and tinyobj::ObjReader::Warning().

◆ print_coords()

void print_coords ( float *  coords,
int  numpts,
int  count 
)

Definition at line 127 of file objloader.cpp.