Let's see how many polies we can push in AGK

Started by GaborD, June 09, 2019, 04:05:25

Previous topic - Next topic

Qube

QuoteYeah, but what's the solution? 
We can't post any cool screens anymore because some "I don't want to put any effort into game dev" guys could misinterpret it?
Nah, no one is saying that and you are misunderstanding. What you have done is superb and very impressive work, definitely not easy with zero work.

All I'm saying is that this is really nothing to do with AGK as you posted but more to do with your shader skill set. From my point when someone says "done with AGK" I automatically assume done with the commands of AGK. I bet 99% of the source is shader code?.

Again I can't stress how great this is and perhaps we just have different thoughts when it comes to saying what "done in AGK" means. Sorry if I offended you.

Can I have this as a screen saver or will the GPU scream for mercy after a few minutes :P
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Coder Apprentice

#16
Hey Gabor,

Cool stuff as always. I think the only thing is missing is to share your machine's specs. And some numbers about how much other engines like Unity etc. are slower with the same amount particles in comparison. Because if Unity cannot render the same amount of particles with the same speed on the same machine that is definitely a meaningful information. I'm guessing you're using AGK Studio for these tests? 

Rick Nasher

I was gonna say 'cool'  8) but that word isn't sufficient. It's *HOT* like solar flares!

Top notch stuff GaborD, as always.
_______________________________________
B3D + physics + shaders + X-platform = AGK!
:D ..ALIENBREED *LIVES* (thanks to Qube).. :D
_______________________________________

GaborD

#18
Quote from: iWasAdam on June 09, 2019, 11:40:50
I do think that these examples are (in some ways) what can be done with shaders, rather than what can be done with AGK.

But that is one and the same.
Even stock AGK rendering is fully shader based. Everything is nowadays. In every engine.
And the engine used still matters a lot, because they all have different amounts of bloat or in some cases are basically a blackbox and don't give you enough direct access to do it right. You can't take a shader an slap it into another engine and suddenly have PBR or GPU particles. You still have to do a lot of the work engine/CPU side. The shaders are pretty simple, developing the whole system isn't.

In any case, if someone chooses not to use one of the most powerful tools at their disposal, that's fine by me, do whatever you want or don't. But that decision is yours and has nothing to do with my stuff.
Just to be clear, yes I will use custom shaders for everything where it makes sense and in any engine I use. Why would I not. It's part of the toolset.
Honestly, anyone who truly wants to do higher end modern 3D has to learn and use shaders. It's an integral part of the job now.

Quote from: iWasAdam on June 09, 2019, 11:40:50
Also people might criticise because these are more 'tech' demo's and not things you would really do with a game or 'working' code.
There is no difference between running it as a solo demo or in a game. It's just an include file.
I wanted to keep it simple, to purely test the particles. But I should make a cooler demo, agree to that :)

Quote from: iWasAdam on June 09, 2019, 11:40:50more than likely as you would need to know the shaders inside out, to get anywhere with them?
Not once the system up and running. Fully data driven.
Once something like this is developed I generally don't have to touch the code anymore. Was the same for the PBR stuff, can switch out the entire scene without touching a shader.
I agree otherwise it would be very cumbersome to use hehe.

Quote from: Qube on June 09, 2019, 12:22:16
All I'm saying is that this is really nothing to do with AGK as you posted but more to do with your shader skill set. From my point when someone says "done with AGK" I automatically assume done with the commands of AGK. I bet 99% of the source is shader code?.

I get your point, but as I pointed out above to me it's a moot point. Shaders are an integral part of every engine workflow when doing stuff like this.
You can't do higher end 3D without shaders.
We can agree to disagree, I respect your opinion and do get what you mean. I just don't agree on looking at it that way.

Think of shaders just as two additional functions for each surface that get added to your main code.
One function gets called once for every vertex, one function runs once for every pixel drawn. That's it.
It's not some separate magical system, it's just a simple to use additional place to add some (mostly really simple) code that runs on a powerful aditional processor in a highly parallelized fashion (which can be a big strength, especially for things like particles, where you have to execute some very simple code a ton of times).
Why not leverage them? It doesn't make sense not to.

Quote from: Qube on June 09, 2019, 12:22:16
Sorry if I offended you.
You did not. Your points are valid. That response wasn't aimed at you at all.
I am just posting stuff I find fun and interesting and hopefully motivating some others to look into using shaders.
I have nothing to do with any of that other drama, nor do I want to quite frankly. All I ask is to please keep it out of my totally unrelated showcase threads. Seems it's a futile request, but hey, I'll keep asking.

Quote from: Qube on June 09, 2019, 12:22:16
or will the GPU scream for mercy after a few minutes :P
Depends on the settings I suppose  :))
Up to a million or so it runs comfortably above 60FPS, so if I would limit it to that it wouldn't even push the GTX1070 hard. And that's hardly a high end card nowadays.

Quote from: Kris on June 09, 2019, 14:55:31
Cool stuff as always. I think the only thing is missing is to share your machine's specs. And some numbers about how much other engines like Unity etc. are slower with the same amount particles in comparison. Because if Unity cannot render the same amount of particles with the same speed on the same machine that is definitely a meaningful information. I'm guessing you're using AGK Studio for these tests? 

:)
GTX1070.
The CPU is kinda irrelevant (midrange i7-7700, no OC), it twiddles thumbs at around 10% when running 1 million particles at 500FPS.
I don't have numbers for other engines, because I barely use them. (Unity for some work stuff). For own projects I prefer the smaller code based engines. I can get it to run similarly in NB (my original implementation was in NB) and I guess in C3D, but those are unfortunately both dead. Leaves us with AGK :)
At this point Studio and Classic are the same, I can open and run it in both.

@Rick Nasher
Thanks man. I am having fun playing with this stuff.

Steve Elliott

Quote
And the engine used still matters a lot, because they all have different amounts of bloat or in some cases are basically a blackbox and don't give you enough direct access to do it right.

I think this is what people were asking, and you've now explained what advantage you get with AGK.  Great work.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

GaborD

#20
Yeah, I think people see the main engines and the shaders as two separate things, which in my opinion is not applicable nowadays.
I'd rather try to push people towards seeing shaders as an integral part of each engine's toolset. And the implementation will ofcourse be different in each engine.
In this case the rendertex implementation is actually just as important, that may vary too based on engine.
AGK is very flexible and open in this regard and has basically no bloat. That's a HUGE plus in my book and should not be underestimated.

Qube

#21
QuoteI think people see the main engines and the shaders as two separate things, which in my opinion is not applicable nowadays.
I'm one of those people ;D ( in a way ). On one hand I see AGK as a BASIC variant, just like I see Unity and Unreal as visual designer + C# / C++ for the code. When it comes to the shader side I see that as a separate part as the language used for shaders is neither BASIC ( AGK ) or C# ( Unity ) or C++ ( Unreal ).

I know we've been through this a zillion times but just for context... When TGC showed that fantastic demo you came up with they were pushing it as what AGK Studio can do. On one hand it can but if someone was to buy AGK Studio, learn all the commands / language and then ask how that demo was created they'd be told that 99% of what they've learned of AGK is inapplicable as they'd need to use a totally different language for the most part.

That's why silly old me thinks of the languages of AGK / Unity / Unreal etc separate from the shader side as it's a different language to the native ones used by those dev environments. Hope that makes sense?

I can see your point too as strictly speaking you are using AGK's commands to create these wonderful visual treats and behind the scenes there is more shader work going on than most AGK users are aware of.
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Qube

Talking of shaders and AGK... GarborD, would you be interested in doing some AGK tutorials for the forum?. Paid of course at a proper hourly rate. If your interested in such a thing then PM me and we'll work out all the details.
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

GaborD

Quote from: Qube on June 09, 2019, 23:40:27
QuoteI think people see the main engines and the shaders as two separate things, which in my opinion is not applicable nowadays.
I'm one of those people ;D ( in a way ). On one hand I see AGK as a BASIC variant, just like I see Unity and Unreal as visual designer + C# / C++ for the code. When it comes to the shader side I see that as a separate part as the language used for shaders is neither BASIC ( AGK ) or C# ( Unity ) or C++ ( Unreal ).
...
That's why silly old me thinks of the languages of AGK / Unity / Unreal etc separate from the shader side as it's a different language to the native ones used by those dev environments. Hope that makes sense?

Yeah it's something additional people have to deal with, I fully agree to that. My point is that this is the case in any engine and it is to be expected by users.
By your metric none of the Unity demos are really in Unity, because they all use custom shaders and other outside stuff no newbie can dream of doing (fluid dynamic created wind flowfields baked to volumetric textures anyone?) and none of the UE4 demos are really UE4, because they all use custom shaders, extremely expensive media or source changes a newbie can not do. (at least in UE4 you have Blueprints to ease you in, so that's a start)

It's just how things are now and in my opinion any newbies wanting to join game dev should think about at least learning shader basics, because it will help them a lot along the way.
Especially in the current extremely heavily oversaturated market you gotta use every advantage that can set you apart from the flood of low quality asset flips.

Qube

QuoteBy your metric none of the Unity demos are really in Unity, because they all use custom shaders and other outside stuff no newbie can dream of doing
Not really as with those you can load in the scenes and they are not blank with mainly shader code. Sure they are heavily shader based but you can see a lot more "Unity" at work than just pure shaders alone.

You have your views and I have mine :D
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Naughty Alien

#25
Quote
It's just how things are now and in my opinion any newbies wanting to join game dev should think about at least learning shader basics, because it will help them a lot along the way.

..this is exactly where folks like AGK guys, makes money,by making things simple enough that person(newbies) do not need to bother with things 'taking away' their 'precious time' as they just want to code a game with gameplay instead of VFX 90% of time..same goes for cross platform deployment, which is quite painless in AGK...for example,  if cross platform deployment of AGK is process in terms of complexity,  similar to writing shader to get some effects, nobody will buy it..Unity become an industry standard built on the top of such concept...AGK does literally same(in terms of concept), except its not always what it seems (im still waiting to see how to load 3d(format AGK support) object with lightmap as advertised, with default commands)...if one wants to make a money, then 'newbies' are very good to have around..

Qube

QuoteIt's just how things are now and in my opinion any newbies wanting to join game dev should think about at least learning shader basics, because it will help them a lot along the way.
I can see we are at polar opposites on this as I think learning the logic of various techniques comes way beyond learning shaders. Shaders don't make a game good and neither are they key to making a game. Shaders are great when it comes to pure grunt of creating and manipulating data but absolutely pointless in regards to creating a good game.

Saying that newbies should learn shaders is just throwing them in the deep end big time. There is just too much tech side to understand in one go. Learning how to display and move a sprite is way more important than how to manipulate each pixel of its texture.

I would agree that it should be on their learn list as ( keeping it simple ) colouring a sprite one colour is faster / easier via shaders than it is via code in a gaming language. However there are many many things to learn first in regards to making games than learning shaders.

While we are at polar opposites in regards to this I think it's great to air both perspectives. I do agree with many of your points and I totally get where you are coming from but I do think that any newbie should have shaders last on their list to learn as there is so much more logic wise to learn first.

*edit* for you kids.... #InterestingThread
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Qube

@GaborD - In case you missed my earlier post :

"Talking of shaders and AGK... GarborD, would you be interested in doing some AGK tutorials for the forum?. Paid of course at a proper hourly rate. If your interested in such a thing then PM me and we'll work out all the details."

This is a serious offer as I think some quality tutorials in this area would be great for many users both old and new.
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Qube

QuoteAnd, just to be crazy, 16 Million particles. Try that in Unity
How about 80 million parties at 20 FPS?

https://www.youtube.com/watch?v=0deXRHX9C08

Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

GaborD

#29
 :)
Untextured pointsprites in a small window is a smart trick for pure performance stresstesting. Saves a lot of geometry and fillrate. Will have to try that, I like it.
Very cool.