Giter Club home page Giter Club logo

bitrt's Introduction

                                        BITRT Brief Introduction
bitRT is an ultra-high performance ray tracing core library (currently only providing acceleration building and ray traversal&intersection functions, triangle-mesh only), 
based on non BVH technology routes, with a lot of innovation at the algorithm level. The current version has been highly optimized for the AVX2 and AVX512 ISA, 
and its performance in diffuse ray traversal&intersection is much higher than the embree. We will also increase support for GPUs in the future. 
The goal of bitRT is to achieve performance comparable to hardware ray tracing through algorithmic innovation and highly optimized software on general-purpose processors(CPU and the general computing unit of GPU)

bitrtInit(): Initialize bitrt context and check hardware

bitrtResult bitrtCreateCore(bitrtCore* p_handle): Create bitrtCore handle and store result to *p_handle, should create one handle per thread

bitrtSize2 bitrtGetAccelBuildingSizes(const bitrtSence* p_sence): Get accel building sizes, the result.x is max size of accel building need and result.y is workspace size

bitrtResult bitrtBuildAccel(void* accel, void* temp, const bitrtSence* p_sence): Build accel, accel&temp is allocated with sizes form 'bitrtGetAccelBuildingSizes', Note: start address of accel must be aligned to 64 bytes and temp address of temp must be aligned to 16 bytes

size_t bitrtGetAccelInfo(const void* accel, bitrtAccelInfo info): Accel is builded by 'bitrtBuildAccel', it return actual size of accelerate struction when info is 'bitrt_accel_info_size' and you can use this size to allocate compressed accel space and the use 'bitrtCompressAccel'

bitrtResult bitrtCompressAccel(void* dst, const void* src): Compress src to dst, dst size is get through 'bitrtGetAccelInfo' with bitrt_accel_info_size'

int bitrtTrace(bitrtHit* p_hit, bitrtCore core, const bitrtSence* p_sence, const void* accel, const bitrtRay* p_ray, int entry_node_index): Traverse&intersect, 'p_hit' store the intersect result; 'entry_node_index' is the start node index of ray traverse(first is 0); This func return a 'int' result is the 'hit node index' and can be as the entry node index of next trace or 'bitrtOccluded'

bool bitrtOccluded(bitrtCore core, const bitrtSence* p_sence, const void* accel, const bitrtRay* p_ray, int entry_node_index): If return 'true' means is occluded, used to shadow ray test and occlusion test

bitrtResult bitrtDestroyCore(bitrtCore handle): Release resource of handle

bitrt's People

Contributors

xiuyuli avatar

Stargazers

 avatar

Watchers

 avatar  avatar

bitrt's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.