madjestic / e1338 Goto Github PK
View Code? Open in Web Editor NEWa re-write of e1337 with BearRiver (and, maybe, MVars)
License: BSD 3-Clause "New" or "Revised" License
a re-write of e1337 with BearRiver (and, maybe, MVars)
License: BSD 3-Clause "New" or "Revised" License
Why?
The reason is that every time we do a computation in 32bits Float (GPU),
we are losing precision. CPU is 64bit Double. Since we are dealing
with relativistic distances, we can have very larger values in matrices,
everything right in front of the camera can be very, very far away,
e.g. millions or hundreds of millions km away, or billions or hundreds
billions of meters, i.e. values like 10^(6..11).
At the same time, objects of the order of magnitude of 10^(1..10)m.
can be at a distance of just 10^(0..10)m. I.o.w. our transform matrices
can have values with a large number of values either before, or behind
a dot, or both. E.g. 9,999,999,999; 0.99; 150.99.
When multiplying such matrices, especially rotations, precision will suffer,
values after the dot may be culled or lost altogether,
partial values approaching integers, which will lead to artifacts,
especially when dealing with thin objects: faces on one side can visually
intersect faces of the opposite side, positions can be generally deformed
with visible imprecisions, z-fighting, etc.
Introducing logarithmic space correction in 32bits precision can only
make such artifacts worse. On the contrary, if precision is preserved,
logarithmic space correction should help with rendering thin objects
in coordinates with relativistic distances close to the camera.
Solution: do as little matrix math on the GPU side as possible,
only when precision loss is not an issue, move it to CPU side instead.
Drawbacks: it's extra work for CPU.
Addressing Drawbacks: high-performance tools, such as massiv, may
give enough performance with added benefit of high precision.
At the moment the conversion of geo with 90K points takes more than 10 hours, that is excluding reshuffle. That is probably due to working with String data (90K points become one very long String).
TODO:
./app/geoIndexerNP.hs
through the profiler, identify the bottle necks.The app should support multiple cameras with a camera-switching mechanics.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.