Giter VIP home page Giter VIP logo

hobbies's Issues

Add N Polygon object to `raytrace`

(N triangles or does the triangle cross trick work for more than 3 points (as long as it is convex and coplanar?)

Makes any closed polygon shape?

Implement `planar_polar` mapping

Given a ray (normal + center), x unit reference in plane and any other point within the plane, return the polar coordinates of that point.

Overlaps should only have 1 valid normal at a given surface point.

Add a way for overlaps to properly return a normal from only one sub object. If an object should not return a normal at a point it should return R3::null. Some objects like cones or cylinders have normal generators which don't check if a point is on the "surface".

Fix Quadratic Saddle ?

Not sure if it's working correctly or not, but the unit tests for QuadraticSaddle is producing weird results. Try removing the plane and just see what's left & fix if needed. May find out saddles aren't possible.

Add more statistics

Would like to see added:

  • Total New Sample Rays
  • Total Eye Rays (original + anti-aliasing)
  • Total Shadow Rays
  • Average Recursion Depth per pixel?
  • Start Time Rendering
  • Elapsed Time Rendering
  • Number of Objects in Scene
  • Number of Lights in Scene

Implement Atmospheric Haze in Mediums

I already have this function in transparent mediums:

element_type absorbance(element_type distance) const;

which is implemented as

element_type transparent::absorbance(element_type distance) const {
    return std::exp(-distance * m_fade);
}

Cuboids must be closed surfaces

Cuboids can occasionally return single intersections if the ray passes exactly through the sharp edge of a corner. I suppose it could miss entirely if it went through two edges.

Implement Adaptive Depth Control in Raytrace

Pass the current scale level to each recursive trace as a magnitude. When that constituent level is below a threshold, return and do not recurse anymore. This would replace a fixed number of reflective/transmitted ray-casts.

Add light emitting surfaces

Some surfaces can emit light. This should be a property of the surface itself and potentially of the object? When determining if a point is in shadow or not, also then (super complexity bump!) check to see if any light emitting surfaces are in view of the point. This requires shooting shadow rays at every object in the scene. It would help, as a shortcut, to have a global flag which indicates if there are any emitting objects, then we can skip the check if none were specified.

Fix Ray/Surface issues in Sphere and elsewhere

It might be double/float issues in the gtest_sphere.cpp which is cause points on interior of a sphere pointing out to intersect with the sphere, which doesn't make sense. They should not. Did I implement double-sidedness?

Add toroidal mapping 3d -> 2d for "textures"

Add a method to translate any point on a torus to a 2d point (2 angles). The first is the angle to the R3::basis::X in the XY plane. The second is the rotation around the donut (find through dot ?)

Fix training data paths in `neuralnet.cpp`

Previously they where absolute, which was awful. Now they are completely relative, which isn't the best either. Use basal::options to implement an argument processor.

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.