Code Monkey home page Code Monkey logo

opalfalcon's People

Contributors

kevinmackenzie avatar

Stargazers

 avatar

Watchers

 avatar

opalfalcon's Issues

renderPhotons is zoomed in too much

Something is wrong with renderPhotons . It does not have the same "zoom" level as the ray-traced version, so I am assuming this is an issue with the transformations (maybe they're being applied twice?) somewhere in the render function, but its also possible the ray-tracer isn't zoomed in enough?

Investigate

Add randomized methods

Monte-Carlo methods would improve the appearance of the images with the same performance. The problem is that random number generation is stateful and the current implementation of the ray-tracer is pure. We can isolate monadic operations to the top-level (traceRay, sampleLights) and keep most operations pure.

Improve module / export structure

We should control the things we export from each of the packages since a lot of functions are for internal-use only, especially those that assume the context functions will be called in (since they are for decomposition and to support future external-facing functions).

Let there be light

Right now, the only light we get is that hitting the background is white, but we need to have real light objects in our system so we can calculate shadows.

Add real-time user interface

We currently output to files, but it should have a real-time interface that supports:

  • Scene navigation / camera control
  • resolution control
  • any MC settings
  • dynamic resolution
  • more stuff TBD

Optimize vector / matrix operations

The way vectors were designed was to make vector operations easier to write to start with, but they may be inefficient. Even in a simple scene the render time is too high. Look into faster methods of doing this math that expose the same interfaces. Ideally, vector components won't have to be individually accessed outside of internal vector functions.

Add Global Illumination model

A key element to the ray-traced images being believable is a global-illumination model. Currently only direct lighting is supported. Photon mapping seems like a good candidate.

Add Camera Model

There are several instances where camera properties are required and passed ad-hoc, but it should be its own object in the scene containing.

Flesh-out the material model

The current material model is a good start. The concept of the AppliedMaterial is good since it gets around some of the troubles of general purpose materials for general-purpose geometry. Currently, the solution for materials is established on a per-object-type basis, but we should establish object-type materials that map to certain kinds of geometry. Textures would be nice for diffuse-only surfaces.

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.