Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (798)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (865)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 ... 29 30 [31] 32 33 ... 213
  ignore  |  Print  
  What I did today  (Read 3425965 times)
0 Members and 2 Guests are viewing this topic.
Offline theagentd
« Reply #900 - Posted 2014-11-05 03:55:11 »

I'm in shock... I think I found the holy grail of graphics programming... I'm literally getting cold sweat...

I solved transparency sorting. I get perfect quality without any pre-sorting at all; not on the CPU or the GPU. I just throw stuff at it and it works. It is completely order-independent. No depth peeling. No stupid additive blending weighted by depth that corrupts color. No shitload of layers to make it look good. No GPU linked lists. Just 4 render targets and 2 passes of all transparent stuff, constant time regardless of view. And then it just works, at perfect quality. At half resolution 1920x1080p, it only uses 13MBs of memory, CONSTANT.

There's no compromise anywhere. It uses a constant amount of memory, runs in constant time, handles any amount of overdraw and always gives correct results. W-what do I do?! Who do I talk to?!

Myomyomyo.
Offline HeroesGraveDev

JGO Kernel


Medals: 382
Projects: 11
Exp: 4 years


┬─┬ノ(ಠ_ಠノ)(╯°□°)╯︵ ┻━┻


« Reply #901 - Posted 2014-11-05 04:05:31 »

W-what do I do?! Who do I talk to?!

Write an article about it and post it all over programming/gamedev subreddits?

Edit: And obviously here too.

Offline Ecumene

JGO Kernel


Medals: 200
Projects: 4
Exp: 8 years


I did not hit her! I did not!


« Reply #902 - Posted 2014-11-05 04:06:03 »

Finished the website for my high-school club.

th-media-lab.github.io

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Drenius
« Reply #903 - Posted 2014-11-05 05:36:30 »

W-what do I do?! Who do I talk to?!
You could... try to explain it here... just an idea...
Offline theagentd
« Reply #904 - Posted 2014-11-05 17:20:19 »

W-what do I do?! Who do I talk to?!
You could... try to explain it here... just an idea...
I'll start with a teaser screenshot!

I just finished coding a program in which I can switch between no sorting, CPU particle sorting and my OIT (order-independent transparency) implementation. Here's a screenshot of a white sphere with diameter 200 inside a 200x200x200 cube, so at the center of the cube's faces, the white sphere should be visible, but not anywhere else.


No sorting
Simply rendering all the particles in their random order looks, as expected, horrible. The white particles inside the cube should only be barely visible, but since the particles aren't ordered correctly, the blending screws up.


CPU-side depth sorting
Sorting the particles by depth seems like a decent fix at first, but even though it should be 100% correct it does not look good in this case. This isn't visible in the screenshot, but if two smoke particles (that are supposed to each represent a volume) that intersect suddenly change z-order, we see a sudden pop. Perfect depth sorting therefore doesn't look particularly good for volumetric particles.



My OIT-implementation
What we actually want is some kind of soft blending that does 50-50 blending if two particles intersect, but also sorts the particles perfectly if they're not intersecting along the Z-axis. As an example, if we have a red and a green particle that are almost at the exact same position, we don't want to pick the one that just happens to be a tiny millimeter closer to the camera, we want an almost even mix of the two. If we however have a thick green particle close and a far one behind it that's red, we obviously want the green one to occlude the red one. My algorithm handles this perfectly. At first look, it looks a little bit blurry, but this is simply because the particles that are along the surface of the cube are blended together (as they should be!), but the center of the cube is still 100% obscured. This is what we want EXACTLY when we render particles trying to simulate a volume.
Again, this is without any pre-sorting at all. I simply throw the data at the GPU in any order I feel like, meaning I can draw particles, transparent streak effects, actual volumetric smoke, god rays, transparent hair, etc in any order I want them to and get a correct color blend between them.


Myomyomyo.
Offline Grunnt

JGO Kernel


Medals: 143
Projects: 8
Exp: 5 years


Complex != complicated


« Reply #905 - Posted 2014-11-05 18:20:44 »

I've added a simple console the my in-progress-game that makes it easy to set several balancing parameters and turn off and on debugging features. It's quite helpful in speeding up development:


Also, looks interesting, theagentd, even though I still don't get it Wink

Offline cylab

JGO Kernel


Medals: 195



« Reply #906 - Posted 2014-11-05 20:07:36 »

W-what do I do?! Who do I talk to?!
*shhhh*
     persecutioncomplex
patent it!
     persecutioncomplex

Mathias - I Know What [you] Did Last Summer!
Offline Opiop
« Reply #907 - Posted 2014-11-05 20:11:50 »

I don't understand much of what you said, theagentd, but it sounds technical and impressive, so have a medal! Good luck trying to find the right people to talk to, hope you aren't kidnapped and taken to a top secret graphics research center in the middle of nowhere and kept hostage until you spill your guts on your algorithm-do bob-thingy!

Smiley
Offline pitbuller
« Reply #908 - Posted 2014-11-05 21:06:36 »

I'm in shock... I think I found the holy grail of graphics programming... I'm literally getting cold sweat...

I solved transparency sorting. I get perfect quality without any pre-sorting at all; not on the CPU or the GPU. I just throw stuff at it and it works. It is completely order-independent. No depth peeling. No stupid additive blending weighted by depth that corrupts color. No shitload of layers to make it look good. No GPU linked lists. Just 4 render targets and 2 passes of all transparent stuff, constant time regardless of view. And then it just works, at perfect quality. At half resolution 1920x1080p, it only uses 13MBs of memory, CONSTANT.

There's no compromise anywhere. It uses a constant amount of memory, runs in constant time, handles any amount of overdraw and always gives correct results. W-what do I do?! Who do I talk to?!

How does that cube shot look when you have actually translucent and additive particles in mix? There must be something that you are not telling or yet discovered.
Offline kpars
« Reply #909 - Posted 2014-11-06 07:34:36 »

W-what do I do?! Who do I talk to?!

Call up John Carmack.

- Jev
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Grunnt

JGO Kernel


Medals: 143
Projects: 8
Exp: 5 years


Complex != complicated


« Reply #910 - Posted 2014-11-06 20:51:08 »

Blogged a little about how great Star Control 2 is, and I added rudimentary weapons and damage to the Coreward prototype. So far it's working well but missing special effects, and ship damage is not handled completely yet (energy systems stay functional even though they should be damaged):

Offline ags1

JGO Kernel


Medals: 367
Projects: 7


Make code not war!


« Reply #911 - Posted 2014-11-06 21:07:57 »

Added levelling up to my word game Verbal. You can now buy new letters with 30 seconds of time. It makes the game a lot more manic - no more running out of words when you have 130 seconds left on the clock.

Many thanks to richierich for the suggestion - it's much better than my original idea of just earning extra lives.

Also, I've got a new no-timer puzzle-solving mode in the works.

Offline lcass
« Reply #912 - Posted 2014-11-07 23:55:43 »

Began rewriting my game , I found that a lot of the features were not how I wanted them to be so im going to reprogram it in a simpler way.
Offline death_angel
« Reply #913 - Posted 2014-11-08 00:04:32 »

Fixed some bugs to my Ninja vs Zombie Pirates and created my own encryption algorithm  Smiley

I am just a guy
Offline kingroka123
« Reply #914 - Posted 2014-11-08 14:23:07 »

Accidentally graphed a conic in my voxel experiment:
Offline kingroka123
« Reply #915 - Posted 2014-11-08 17:06:44 »

Woo! Voxels!

Click to Play
Offline CopyableCougar4
« Reply #916 - Posted 2014-11-09 00:58:45 »

I made progress, however it wasn't in one clear direction:

  • Updated a bukkit plugin that is over a year old (FriendMe)
  • Network routing for a "server map" being sent to client (unfinished)
  • Added
    SkeletalSprite
    objects to my game library, where each
    Limb
    can individually have a series of Action interface implementations attached to it
more to come!

CopyableCougar4

Either wandering the forum or programming. Most likely the latter Smiley

Github: http://github.com/CopyableCougar4
Offline basil_

« JGO Bitwise Duke »


Medals: 418
Exp: 13 years



« Reply #917 - Posted 2014-11-09 20:19:35 »

made a few 2d space filling comparators :

X


Y


z-curve


hilbert-curve


and random ofc
Offline GameQuester

Senior Devvie


Medals: 9
Projects: 2



« Reply #918 - Posted 2014-11-10 01:08:02 »

I did some graphics and worked on door animations for Star Four.

Click to Play
Offline Roquen

JGO Kernel


Medals: 518



« Reply #919 - Posted 2014-11-10 06:58:28 »

I stuck up an example z-curve here: https://github.com/roquendm/JGO-Grabbag/tree/master/src/roquen/math/sfc
Offline Ecumene

JGO Kernel


Medals: 200
Projects: 4
Exp: 8 years


I did not hit her! I did not!


« Reply #920 - Posted 2014-11-11 02:08:47 »

Tried out basic AI

Click to Play

MP4: http://i.gyazo.com/3925cc7c0f4c65663c2dafd7f2f9587e.mp4

Offline ags1

JGO Kernel


Medals: 367
Projects: 7


Make code not war!


« Reply #921 - Posted 2014-11-11 11:58:04 »

Not today, but in the last 24 hours: scaled up my maps in Fog: Survive by a factor of 16 and added gravity. As a result of which I discovered my ground is very bumpy... Huh

(Probably because I am using a 4096x4096 hightmap, but the jME docs say a maximum of 1024... What do they know anyway?)

Offline theagentd
« Reply #922 - Posted 2014-11-11 16:11:27 »

Update on my order-independent transparency algorithm.

I've been working on improving the quality and optimizing the algorithm. Today I found an opportunity to optimize the performance by almost 300%, making the algorithm an extremely good alternative to Weighted Blended Order-Independent Transparency. This performance optimization can also be applied dynamically, reducing quality when there is a massive amount of overdraw due to particles covering the whole screen, in which case the quality drop isn't noticeable.

Here's some numbers for full resolution 1080p rendering with 500 000 static particles. All these algorithms are GPU limited unless otherwise noted.

AlgorithmMemory usagePerformanceNotes
CPU sorted15.8 MB6 - 56 FPS (heavily CPU limited)Good quality, but too sharp depth ordering, causing popping when the order of two intersecting particles suddenly changes
Weighted Blended Order-Independent Transparency35.6 MB155 FPSVery bad. Either weak depth ordering (looks like an even blend regardless of depth), or heavy color bleeding when overlapping particles have a high depth difference. No perfect depth weight function.
Weighted Blended Order-Independent Transparency with 8 layers174.0 MB~69 FPS (estimate)Bad. Better depth ordering, but complex to implement and artifacts are only suppressed slightly. Not stable under translation. Used in Insomnia at the moment.
My OIT algorithm at low quality (2x)39.1 MB110 FPSBetter depth ordering compared to WBOIT, noticeably less color bleeding on overlapping particles. No popping when depth order changes.
My OIT algorithm at medium quality (4x)42.6 MB75 FPSSignificantly better depth ordering, significantly reduced color bleeding. No popping when depth order changes. Superior to CPU sorted particles.
My OIT algorithm at high quality (8x)49.7 MB44 FPSExtremely high quality depth ordering. No noticeable color bleeding. No popping when depth order changes. Superior to CPU sorted particles.

In Insomnia, I render all transparent geometry at half resolution (= 1/4th the pixel area), so expect performance to improve by 3-4x these values in a real game which renders at a half resolution. This test was also extremely stressful, with an average pixel overdraw of around 15-16. In other words, around 33 million pixels were filled. A large number of pixels were also overdrawn over 200 times, meaning that per-pixel linked lists and depth peeling would not be able to handle this scene correctly/with good performance.

How does that cube shot look when you have actually translucent and additive particles in mix? There must be something that you are not telling or yet discovered.
I did notice that the technique does require more memory/performance to be able to handle certain situations (hence the low-medium-high quality listing above), so that turned out to be false. Though, an advantage of this is that I can make a performance/quality trade-off if I want to, making the algorithm more adaptable. All my other claims still stand. Additive particles require a different shader to be rendered, but are also noticeably cheaper to draw when it comes to fill rate. I have yet to implement them, but the shader is essentially written in my head already.

EDIT: Oh, another unmentioned limitation: It cannot handle 100% opaque geometry. I currently have it limited to 99% opaque (= alpha 0.99).

EDIT2: It turns out that the optimization I wrote about not only quadruples my FPS, it also eliminates all remaining color bleeding, which I did not expect at all...

Myomyomyo.
Offline BurntPizza

« JGO Bitwise Duke »


Medals: 486
Exp: 7 years



« Reply #923 - Posted 2014-11-11 16:58:52 »

I'm not really a user of such tech, but I always enjoy hearing about such algorithms. Staying tuned!
Offline pitbuller
« Reply #924 - Posted 2014-11-11 19:15:40 »

Update on my order-independent transparency algorithm.

What you plan to do with the algorithm? Write a paper from it? Keep it as secret? Share it? Its sounds very interesting and I can't wait to see how well its work on different use scenarios.
Offline theagentd
« Reply #925 - Posted 2014-11-11 20:38:29 »

What you plan to do with the algorithm? Write a paper from it? Keep it as secret? Share it? Its sounds very interesting and I can't wait to see how well its work on different use scenarios.
Since the algorithm has matured a lot and is now faster, has higher quality, uses less memory and is easier to implement than what I currently use in Insomnia (a layered version of WBOIT), I intend to implement into our engine to make sure that it looks as good as it does in my test program and to provide a more real-world example. Then I intend to write a proper paper on it, possibly with the help of someone from my university.

Myomyomyo.
Offline kpars
« Reply #926 - Posted 2014-11-11 20:47:18 »

Made a wallpaper to get myself hyped for Ludum Dare 31.



It starts in only 24 days from now. Cheesy

16:10 wallpaper (1920x1200)
16:9 wallpaper (1920x1080)

16:10 alternative (1920x1200)
16:9 alternative (1920x1080)

16:10 PSD (1920x1200)
16:9 PSD (1920x1080)

- Jev
Offline BurntPizza

« JGO Bitwise Duke »


Medals: 486
Exp: 7 years



« Reply #927 - Posted 2014-11-12 02:49:45 »

Discovered and got interested in Seam Carving, going to try and make a fast implementation.

Got Sobel as the energy function so far (sitting in the bottom 8 bits of an INT_BGR image):

Offline BurntPizza

« JGO Bitwise Duke »


Medals: 486
Exp: 7 years



« Reply #928 - Posted 2014-11-12 03:41:14 »

Crude, horizontal-only single-threaded version is working!

Click to Play



Version showing the pixels being removed: https://gfycat.com/GrouchySpryIriomotecat
Offline Slyth2727
« Reply #929 - Posted 2014-11-12 04:22:42 »

I literally spent about 20-30 minutes making this to procrastinate homework.

Edit: I just wrote a short script to do this for me. It's actually kind of neat, it automatically provides the input to puush, opens a new tab in chrome through a little plugin I spent about 2 seconds on, and opens up the puush link in the clipboard.



I also started planning out my next game. I haven't worked on a game in over 6 months!
Pages: 1 ... 29 30 [31] 32 33 ... 213
  ignore  |  Print  
 
 

 
Riven (28 views)
2019-09-04 16:33:17

hadezbladez (3957 views)
2018-11-16 14:46:03

hadezbladez (1434 views)
2018-11-16 14:41:33

hadezbladez (3954 views)
2018-11-16 14:35:35

hadezbladez (765 views)
2018-11-16 14:32:03

EgonOlsen (4079 views)
2018-06-10 20:43:48

EgonOlsen (4647 views)
2018-06-10 20:43:44

EgonOlsen (2748 views)
2018-06-10 20:43:20

DesertCoockie (3643 views)
2018-05-13 19:23:11

nelsongames (3834 views)
2018-04-24 19:15:36
Java Gaming Resources
by philfrei
2019-05-14 17:15:13

Deployment and Packaging
by philfrei
2019-05-08 16:15:36

Deployment and Packaging
by philfrei
2019-05-08 16:13:34

Deployment and Packaging
by philfrei
2019-02-17 21:25:53

Deployment and Packaging
by mudlee
2018-08-22 19:09:50

Java Gaming Resources
by gouessej
2018-08-22 09:19:41

Deployment and Packaging
by gouessej
2018-08-22 09:04:08

Deployment and Packaging
by gouessej
2018-08-22 09:03:45
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!