codeonwort / pathosengine Goto Github PK
View Code? Open in Web Editor NEWOpenGL Rendering Engine for Study
License: MIT License
OpenGL Rendering Engine for Study
License: MIT License
This is current state of my volumetric clouds, implemented several years ago, but it never worked as I wanted. This is just a result of random luck from random math on volume noises.
Currently every aspect of cloud rendering isn't working as expected:
It's time to fix it.
Fixed things so far:
Now temporal reprojection remains but it's a different situation than TAA. I can't derive exact world positions of prev/current cloud particles that first-hit camera rays. Fast temporal reprojection without motion vectors looks promising.
-> I reviewed the paper but it uses too much memory :/ I'll need 25 textures of the scene size for 25 different offsets. Can't alias them because the merge kernel accesses all of them.
Test dump
[Frame 257]
main thread
WorldTick: 1 ms
FlushLoadedAssets: 0 ms
UpdateCurrentWorld: 0 ms
CreateRenderProxy (MainScene): 1 ms
CreateOverlayProxy: 0 ms
Render Thread
Present: 0 ms
Frame 257: 0 ms
ExecuteCommands: 0 ms
DestroyRenderProxy: 0 ms
WaitForGPU: 0 ms
Frame 257: 1 ms
ExecuteCommands: 1 ms
DestroyRenderProxy: 0 ms
WaitForGPU: 0 ms
Frame 257: 20 ms
ExecuteRenderer: 6 ms
UpdateUniformBuffer: 0 ms
RenderPreDepth: 0 ms
RenderCascadedShadowMap: 0 ms
RenderOmniShadowMaps: 0 ms
Almost all counter items are estimated to 0 ms. Though my clock resolution is in milliseconds, there's no way these counters take less than 1 ms.
This is what I wanted when I was implementing render thread, but currently the engine is not working like this.
Currently main thread tick is somehow bound at glutDisplayFunc's frequency, and I don't remember why I did this??? :(
Old render thread PR: #24
Latest version of syoyo's tiny_obj_loader is moved from 0.9.x
to 1.0.0
.
attrib {
vector<float> vertices
vector<float> normals
vector<float> texcoords
}
index_t {
int vertex_index
int normal_index
int texcoord_index
}
mesh {
vector<index_t> indices
vector<uchar> vertices_per_face
vector<int> materialID_per_face
}
So, I have to group faces by their corresponding material IDs and convert each group a Geometry!
No, oneGeometry
for one shape. I only need to create separate index buffers for each material ID.
Remove dev
branch and use master
as an usual work branch.
Make a release
branch to stash stable versions.
Implemented in #26 but have following issues:
References
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.