GithubHelp home page GithubHelp logo

neodyme60 / skwarka Goto Github PK

View Code? Open in Web Editor NEW

This project forked from volodymyr-k/skwarka

0.0 2.0 0.0 93.86 MB

A physically based raytracer

Home Page: http://volodymyr-k.github.io/Skwarka/

License: GNU General Public License v3.0

Prolog 0.01% QML 0.08% C++ 27.91% QMake 0.01% C 52.02% Makefile 0.04% Gnuplot 0.01% Assembly 0.04% Groff 1.24% HTML 1.72% Perl 0.05% Batchfile 0.03% Objective-C 0.13% Pascal 0.92% C# 11.01% Shell 0.07% Awk 0.02% Visual Basic 2.47% Python 2.23% Hack 0.01%

skwarka's Introduction

OVERVIEW

Skwarka is a research-oriented physically based raytracer inspired by the PBRT. It is used primarily as a test platform for global illumination algorithms and research.

FEATURES

Illumination algorithms:

  • Direct Illumination
  • Photon mapping

Light sources:

  • Point light (and the like)
  • Directional light
  • Area light (mesh-based)
  • Environmental light

Materials:

  • Matte
  • Plastic
  • Transparent
  • Metal
  • Substrate
  • Measured (MERL-based)

Supported input formats:

  • PBRT scene description files

General:

  • Based on triangle meshes. The system supports a number of geometric shapes (such as spheres etc.) by triangulating them to triangle meshes. Object instancing is supported.
  • Supports volumetric scattering.
  • Multi-threaded. The system uses the Intel TBB library to take advantage of multi-core systems.

GALLERY

The gallery contains a number of interesting scenes rendered by Skwarka to illustrate its functionality.

FILE STRUCTURE

  1. Source/ : The source code of the raytracer along with the MSVC project files.
  2. ThirdParty/ : Third-party dependency libraries.
  3. Binaries/ : An output directory automatically generated by the build process. Contains final binaries necessary to run the application.
  4. Intermediate/ : A temporary directory automatically generated by the build process. Contains intermediate binaries for the build process.

SETUP AND BUILD

  1. Install MSVC version 2013 or later.
  2. Download third-party libraries. Some third-party libraries are not in the repository (to save space) and must be downloaded and extracted manually.
    1. Boost
      Download and extract boost library from the website http://www.boost.org/
      The currently used version is 1.56 and it needs to be extracted to ThirdParty/boost/1.56 directory
    2. TBB
      Download and extract TBB library from the website https://www.threadingbuildingblocks.org/
      The currently used version is 4.2 and it needs to be extracted to ThirdParty/TBB/4.2 directory
  3. Open Source/RayLibs/RayLibs.sln file in MSVC and it should be instantly ready for build (except for the unit tests).
    If you also want to build the unit tests (the UnitTests project) you will additionally need to install Python and make sure it's on your PATH env variable.

LICENSE

The project is distributed under the GNU General Public License Version 3 - see the accompanying LICENSE file for more details.

ACKNOWLEDGMENT

The project is based on the PBRT and reuses some of its ideas and code.

The project also uses the following third-party libraries:

  1. Boost
  2. CxxTest
  3. FreeImage
  4. Intel TBB

skwarka's People

Contributors

volodymyr-k avatar kennyalive avatar dummygithubaccount avatar

Watchers

James Cloos avatar  avatar

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.