Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (741)
Games in Android Showcase (225)
games submitted by our members
Games in WIP (823)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 ... 192 193 [194]
  ignore  |  Print  
  What I did today  (Read 2025171 times)
0 Members and 2 Guests are viewing this topic.
Offline Mac70
« Reply #5790 - Posted 2017-11-14 12:20:25 »

Working WebKit based web browser in LWJGL 3:


Click to Play


It still requires lots of work, but is very convenient to use (using JavaFX built-in WebEngine and no external libraries at all). The biggest and pretty much the only problem for now is that texture of rendered page is transferred from CPU to GPU on every frame, some kind of streaming should remove most of that overhead.
Offline KaiHH

JGO Kernel


Medals: 472



« Reply #5791 - Posted 2017-11-14 23:04:30 »

About to finish Tutorial 5 using the "Edge-Avoiding À-Trous Wavelet Filter". On the way to a real-time, game-ready path tracer! Smiley
The following images show a scene with the current tutorial state of the path tracer:

Unfiltered (1 sample per pixel):


Filtered (1 sample per pixel):


Ground truth (1000 samples per pixel):


The downside of that edge-avoiding filter is that it requires per-scene tweaking of the various weighting parameters involved. I'm pretty sure the authors spent a whole lot of time to find the right weight coefficients for the still images shown in their paper.

EDIT: Tutorial 5 (more like a demo really than a "tutorial") is in: https://github.com/LWJGL/lwjgl3-demos/tree/master/src/org/lwjgl/demo/opengl/raytracing/tutorial
Offline Sickan
« Reply #5792 - Posted 2017-11-16 10:57:05 »

This morning I wrote a garbage collector. GC has always seemed to be some kind of impossible mystery that only extremely talents folks like JVM engineers could understand. Turns out a basic tracing garbage collector isn't very complicated.

Take a look: https://github.com/snordgren/goose
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline princec

« JGO Spiffy Duke »


Medals: 973
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #5793 - Posted 2017-11-16 11:00:55 »

It isn't very complicated until you have to handle references in registers, concurrency, threads and cache coherency, finalizers, and references...

Cas Smiley

Online Riven
Administrator

« JGO Overlord »


Medals: 1324
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #5794 - Posted 2017-11-16 12:41:30 »

.. and optimisations by the JIT. You can have multiple (inlined) implementations of 1 callsite at a time, which all store these references in different registers, or (differently laid out) stack memory.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings!
Offline princec

« JGO Spiffy Duke »


Medals: 973
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #5795 - Posted 2017-11-16 12:46:42 »

The way Azul's Zing VM handles all this is quite remarkably sensible... start here https://www.azul.com/products/zing/pgc/

Cas Smiley

Offline KaiHH

JGO Kernel


Medals: 472



« Reply #5796 - Posted 2017-11-16 23:11:02 »

Worked on a new demo today. This time we make a few big steps:
- externalize the scene description out of the shader (the example will use LWJGL 3's Assimp binding to load a scene with meshes)
- that means, we are adding the ability to trace triangle meshes for the first time and getting closer to actual usefulness
- with any triangle meshes bigger than like 32 vertices there now comes the necessity to use a spatial acceleration structure. The already existing LWJGL 3 demos have some ready which we will use for this (most importantly KDTree.java)
- Adding stackless kd-tree traversal as per this fine paper (lwjgl3-demos also already has a shader implementation ready which we will use and integrate into our path tracer)
- Interpolating the normals using barycentric coordinates
- Hybrid rasterization and ray tracing. The benefit of rasterization is that we can use it to "shoot" the primary rays and let them intersect with scene geometry (simply by means of projection/rasterization; this has been done like 20 years ago, nothing of that is new!) and write normals and depth into a texture, which the actual path tracer can then sample to know where to start shooting the secondary rays from (this is basically only a performance optimization, but a very worthy one, especially when we are now talking about traversing lots of kd-tree nodes and testing triangles). The good thing also is that all optimizations for rasterization algorithms apply here as well, such as frustum culling and occlusion culling.

Here is a development image visualizing the kd-tree traversal without rasterization (so, primary rays are being shot by the raytracer) (lighter orange means more kd-tree nodes being traversed) with vertex normals interpolated in the raytracer using the barycentric coordinates returned from the ray-triangle intersection tests:


(sorry for the rather poor image compared to the previous ones, but remember, this is a debug render) Smiley
Pages: 1 ... 192 193 [194]
  ignore  |  Print  
 
 

 
Ecumene (107 views)
2017-09-30 02:57:34

theagentd (134 views)
2017-09-26 18:23:31

cybrmynd (244 views)
2017-08-02 12:28:51

cybrmynd (237 views)
2017-08-02 12:19:43

cybrmynd (237 views)
2017-08-02 12:18:09

Sralse (251 views)
2017-07-25 17:13:48

Archive (863 views)
2017-04-27 17:45:51

buddyBro (1006 views)
2017-04-05 03:38:00

CopyableCougar4 (1565 views)
2017-03-24 15:39:42

theagentd (1372 views)
2017-03-24 15:32:08
List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05

SF/X Libraries
by SkyAphid
2017-03-02 06:38:56

SF/X Libraries
by SkyAphid
2017-03-02 06:38:32

SF/X Libraries
by SkyAphid
2017-03-02 06:38:05

SF/X Libraries
by SkyAphid
2017-03-02 06:37:51
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!