Giter VIP home page Giter VIP logo

raytracer's Introduction

Raytracer

This project was an assignment of the Computer Graphics course at [ITBA] 1 in 2008. See copyright notes at the bottom.

It features a 3D scene rendering engine based in [ray tracing] 2.

Examples of scenes rendered by the raytracer program can be found in the img directory of this repository, as well as documentation in the doc directory.

Features

  • Positionable camera
  • Anti-aliasing through stochastic sampling
  • Point lights
  • Reflection
  • Refraction
  • Penumbra
  • Octrees
  • Bounding volumes
  • Shapes: Sphere, TriangleSet, IndexedTriangleSet, IndexedTriangleStripSet, IndexedTriangleFanSet
  • Material: diffuse and specular color, ambient intensity, transparency, shininess
  • Transform operations: scale, rotation and traslation
  • Partially supports X3D format for input representing 3D scene
  • Supports PNG, JPG, BMP and other image formats for output

File contents

  • bin: Reserved for .class files
  • build.xml: Apache Ant build file
  • COPYING: GNU General Public License
  • doc: Documentation (in Spanish)
  • img: Examples of 3D scenes rendered by the raytracer program
  • lib: Required external libraries
  • raytracer.bat: Script for running the raytracer program on Windows
  • raytracer.jar: Main raytracer .jar file
  • raytracer.sh: Script for running the raytracer program on POSIX systems
  • README.markdown: This README file
  • src: Source code, fully written in Java

Program usage

java -Djava.library.path=lib -jar raytracer.jar [options]

Options:

  • -i <filename>: Input filename (X3D only)
  • -o <filename>: Output filename (in any image format supported by Java image libraries)
  • -s <width>x<height>: Output image size
  • -progress: Show progress bar (rendered pixels out of total pixels) on standard output
  • -show: Show a window with output image
  • -as <N>: Anti-aliasing parameter (square root of the number of rays traced per pixel)
  • -p <N>: Penumbra parameter (number of rays traced per pixel)

Copyright

Copyright (c) 2008
 - Rafael Martín Bigio <[email protected]>
 - Santiago Andrés Coffey <[email protected]>
 - Andrés Santiago Gregoire <[email protected]>

The following additional provisions apply to third party software
included as part of this product:
 - Java3D library: Copyright (c) 1996-2008 Sun Microsystems, Inc.
   Licensed under the GNU General Public License (GPL), version 2,
   with the CLASSPATH exception. See <http://java3d.java.net/>
 - XJ3D library: Copyright (c) 2001-2007 Web3D Consortium.
   Licensed under the GNU LGPL v2.1. See <http://www.xj3d.org/>

Raytracer is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Raytracer is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Raytracer.  If not, see <http://www.gnu.org/licenses/>.

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.