recp / gkern Goto Github PK
View Code? Open in Web Editor NEW๐ฅ Graphics Kernel: flexible, highly configurable, extensible render engine (realtime + offline)
License: GNU Lesser General Public License v3.0
๐ฅ Graphics Kernel: flexible, highly configurable, extensible render engine (realtime + offline)
License: GNU Lesser General Public License v3.0
Hello,
I was wondering if / when a basic example will be provided. I would like to contribute to this project, but I don't know where to begin. As documentation hasn't been created yet, having an example implementation of some of the features would be greatly appreciated so I could better understand how things should be put together.
Thanks.
A shader manager could provide a compiled program or collect combinations of shaders then compile them as program.
This will be used for COMMON profiles/techniques.
We must define custom material definition format and file, plus a Sharing Language like Google did for Filament:
https://google.github.io/filament/Materials.md.html#overview/coreconcepts or bsl in banshee3d: https://docs.banshee3d.com/Native/bsl.html
File extension could be .gpumat
or .mat
or .gkmat
or .gmat
, .effect
...
Desired properties:
This project will use gpu (this is private repo for now) library as backend. So GPU library may use .gpumat
. Also GPU library may provide a shading language or gk could do that.
The current implementation of node hierarchy can be improved by making graph linear (I don't know if this is the right word)
Current impl:
Randomly allocated nodes:
Scene
|
Node
/ \
Node Node
\
....
Considered impl:
Array:
Scene - [ Node | Node | Node | ... ]
Currently I'm working on frustum culling; accessing nodes recursively for every operation or in every render frame is not what I want, also it is not effective because you need to switch to another function due to recursion... Maybe making this linear / array would also make exec faster because of cache locality and less memory consumption
https://stackoverflow.com/questions/23280692/opengl-es2-alpha-test-problems/23283256#23283256
https://www.opengl.org/archives/resources/faq/technical/transparency.htm
Possible Techniques:
Today I implemented weighted, blended order independed transparency.
It is time to implement COLLADA's transparency with all opaque modes. At first it seemed difficult to implement but now I think I understand how to implement it. Maybe implementing all opaque modes may be problem with OIT transparency but I will give a try.
it is all about setting blending functions/equations correctly
There's no build system. How do you build gk?
I can contribute Meson build files if that helps.
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.