kicad/3d-viewer/credits.txt

231 lines
6.8 KiB
Plaintext
Raw Normal View History

Credits
=======
The 3D-viewer contains parts, source code or adaptations or implementations that should give the following
aknowledgments:
cbvh_packet_traversal.cpp
-------------------------------
Contains an implementation of the algorithm described in the paper:
"Ray Tracing Deformable Scenes Using Dynamic Bounding Volume Hierarchies"
http://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/readings/wald07_packetbvh.pdf
by INGO WALD, SOLOMON BOULOS, and PETER SHIRLEY from University of Utah
Contains an implementation of the algorithm described in the paper:
"Large Ray Packets for Real-time Whitted Ray Tracing"
http://cseweb.ucsd.edu/~ravir/whitted.pdf
by Ryan Overbeck1, Ravi Ramamoorthi from Columbia University and William R. Mark from
Intel Corporation and University of Texas at Austin
cbvh_pbrt.h
-----------
Contains a BVH implementation from the source code of the book
"Physically Based Rendering" (v2 and v3) http://www.pbrt.org/
Copyright(c) 1998-2015 Matt Pharr, Greg Humphreys, and Wenzel Jakob.
LICENSE: https://github.com/mmp/pbrt-v3/blob/master/LICENSE.txt
cbbox2d.cpp
-----------
bool CBBOX2D::Intersects( const SFVEC2F &aCenter, float aRadiusSquared ) const
Contains an algorithm implementation based on the paper:
"On Faster Sphere-Box Overlap Testing"
http://www.mrtc.mdh.se/projects/3Dgraphics/paperF.pdf
Thomas Larsson, Tomas Akenine-Möller, and Eric Lengyel
bool CBBOX2D::Intersect( const RAY2D &aRay, float *t ) const
Contains an algorithm implementation based on the article:
http://tavianator.com/fast-branchless-raybounding-box-intersections/
"FAST, BRANCHLESS RAY/BOUNDING BOX INTERSECTIONS", 2011 TAVIAN BARNES
cfilledcircle2d.cpp, cring2d.cpp, croundseg.cpp
-----------------------------------------------
bool CFILLEDCIRCLE2D::Intersect( const RAYSEG2D &aSegRay, float *aOutT, SFVEC2F *aNormalOut ) const
bool CRING2D::Intersect( const RAYSEG2D &aSegRay, float *aOutT, SFVEC2F *aNormalOut ) const
bool CROUNDSEG::Intersect( const RAY &aRay, HITINFO &aHitInfo ) const
Contains an algorithm based on:
http://cs665pd.googlecode.com/svn/trunk/photon/sphere.cpp
Steve Marschner's CS667 framework, email: srm at cs.cornell.edu
TODO: ask author about the license of this source code.
citemlayercsg2d.cpp
-------------------
bool CITEMLAYERCSG2D::Intersect( const RAYSEG2D &aSegRay, float *aOutT, SFVEC2F *aNormalOut ) const
Based on ideas and implementation from
http://homepages.paradise.net.nz/nickamy/raytracer/raytracer.htm
Nick Chapman, email: nickamy@paradise.net.nz
ctriangle2d.cpp
---------------
bool CTRIANGLE2D::IsPointInside( const SFVEC2F &aPoint ) const
Contains an algorithm based on:
http://totologic.blogspot.co.uk/2014/01/accurate-point-in-triangle-test.html
2014 Cédric Jules, email: flash dot cedric at Google mail service
cbbox.cpp
---------
bool CBBOX::Intersect( const RAY &aRay, float *aOutHitt0, float *aOutHitt1 ) const
Contains an algorithm based on:
"Physically Based Rendering" (v2) http://www.pbrt.org/
"Physical Based Ray Tracing" (by Matt Pharr and Greg Humphrey)
https://github.com/mmp/pbrt-v2/blob/master/src/core/geometry.cpp#L68
https://github.com/mmp/pbrt-v2/blob/master/src/accelerators/bvh.cpp#L126
LICENSE: http://www.pbrt.org/LICENSE.txt
cbbox_ray.cpp
-------------
bool CBBOX::Intersect( const RAY &aRay, float *t ) const
Based on the source code from the paper:
"This source code accompanies the Journal of Graphics Tools paper:
"Fast Ray / Axis-Aligned Bounding Box Overlap Tests using Ray Slopes"
by Martin Eisemann, Thorsten Grosch, Stefan Müller and Marcus Magnor
Computer Graphics Lab, TU Braunschweig, Germany and
University of Koblenz-Landau, Germany
This source code is public domain, but please mention us if you use it."
ccylinder.cpp
-------------
bool CVCYLINDER::Intersect( const RAY &aRay, HITINFO &aHitInfo ) const
bool CVCYLINDER::IntersectP(const RAY &aRay , float aMaxDistance ) const
Based on the source code from:
http://www.cs.utah.edu/~lha/Code%206620%20/Ray4/Cylinder.cpp
Linh Khanh Ha, University of Utah, email: lha sci.utah.edu
TODO: Ask author about the source code license
ctriangle.cpp
-------------
bool CTRIANGLE::Intersect( const RAY &aRay, HITINFO &aHitInfo ) const
Implements a triangle ray intersection based on article:
http://www.flipcode.com/archives/Raytracing_Topics_Techniques-Part_7_Kd-Trees_and_More_Speed.shtml
by Jacco Bikker, that implement optimizations based on Ingo Wald's thesis.
cfrustum.cpp
------------
bool CFRUSTUM::Intersect( const CBBOX &aBBox ) const
BAsed on the implementation from:
https://github.com/nslo/raytracer/blob/2c2e0ff4bbb6082e07804ec7cf0b92673b98dcb1/src/raytracer/geom_utils.cpp#L66
Nathan Slobody
TODO: Ask author about the source code license
clight.h
--------
Class CPOINTLIGHT Point light based on tutorial:
http://ogldev.atspace.co.uk/www/tutorial20/tutorial20.html
Etay Meiri, email: ogldev1 gmail
mortoncodes.cpp
---------------
Implements Morton Codes base on the implementation of Fabian “ryg” Giesen
https://fgiesen.wordpress.com/2009/12/13/decoding-morton-codes/
ccamera.h
---------
Frustum structure is based on the tutorial:
http://www.lighthouse3d.com/tutorials/view-frustum-culling/
cpostshader_ssao.cpp
--------------------
SSAO based on an implementation by:
Benjamin Blundell https://github.com/OniDaito/CoffeeGL/blob/master/misc/ssao.frag
Also based from a post by martinsh at:
http://www.gamedev.net/topic/556187-the-best-ssao-ive-seen/?view=findpost&p=4632208
Latter adapter for CPU shader implementation and add other features specific to KiCad implementation.
trackball.h, trackball.cpp
--------------------------
A virtual trackball implementation
Written by Gavin Bell for Silicon Graphics, November 1988.
Original code from: David M. Ciemiewicz, Mark Grossman, Henry Moreton, and Paul Haeberli
License are in the files trackball.h and trackball.cpp
3d_fastmath.h
-------------
This file contains some functions from the PBRT 3 source code.
https://github.com/mmp/pbrt-v3/blob/master/src/core/pbrt.h
"Physically Based Rendering" (v3) http://www.pbrt.org/
Copyright(c) 1998-2015 Matt Pharr, Greg Humphreys, and Wenzel Jakob.
LICENSE: https://github.com/mmp/pbrt-v3/blob/master/LICENSE.txt
3d_math.h
---------
inline SFVEC3F CosWeightedRandomHemisphereDirection( SFVEC3F n )
Based on a post in:
https://pathtracing.wordpress.com/2011/03/03/cosine-weighted-hemisphere/
inline bool Refract( const SFVEC3F &aInVector, const SFVEC3F &aNormal, float aRin_over_Rout, SFVEC3F &aOutVector )
https://github.com/mmp/pbrt-v3/blob/master/src/core/reflection.h
"Physically Based Rendering" (v3) http://www.pbrt.org/
Copyright(c) 1998-2015 Matt Pharr, Greg Humphreys, and Wenzel Jakob.
LICENSE: https://github.com/mmp/pbrt-v3/blob/master/LICENSE.txt
openmp_mutex.h
--------------
openMP mutex class based on:
http://bisqwit.iki.fi/story/howto/openmp/
by Joel Yliluoma, email bisqwit iki.fi