Domain: shadertoy.com
Stories and comments across the archive that link to shadertoy.com.
Comments · 16
-
So first off, the Nvidia/MS thing is crap
The first thing to understand is that the Nvidia and MS press releases are complete crap. Oh it "works". The UE4 Star Wars thing is real enough. It's also running on $12,000 worth of GPUs at 30fps in 1080p, and is only partially raytraced.
Now does this mean realtime raytracing isn't here? Well the answer is no, it is here. The game Claybook is entirely raytraced, unlike the DirectX demos. It's in early access and runs on nothing more than an Xbox One or PS4, and does so at 60 frames per second. Here's the trailer: https://www.youtube.com/watch?... Now THIS is possible because graphics programmers have gotten quite clever over the years. The cleverest bit is called signed distance fields. This can be thought of a volume of points, or boxes, that all store the nearest distance to a solid "surface". Going through this structure allows you to raytrace very very quickly, as you know how much empty space you can skip each time without hitting anything. And since this data is relatively small for each point it doesn't use up a lot of memory either. It's so fast and low memory you can run a demo in your browser here: https://www.shadertoy.com/view...
Obviously there's a bunch of other clever programming going on in Claybook and other titles. But SDF's are the biggest thing to understand. That and that the MS Raytracing API is totally uninteresting from a performance perspective. In fact it's rather awful. -
Re:No
What we miss today is also all those small teams of programmers that made for the time really awesome graphic demos on Amiga and PC in ways that really looks good even today.
Those people hang out on shadertoy these days.
-
Re:Why isn't this already standard?
> Anything else is generally crap that doesn't benefit the surfer
Not always --there are valid use cases:
* Notch prototyped Minecraft procedural textures
* Us graphic geeks using WebGL "hang out" on shadertoy (Warning: Space Audio)As long the default is opt-out and we need to whitelist our favorite sites, while being a minor inconvenience, that is the right way to do it.
-
Re:I was at the dawn of OS/2...
> with an in-house language that lack the ability for simple Boolean functions! That's right - no AND or OR or NOT!
While I agree that is completely bone-headed, technically, you don't need them as long as you have +,-,*,/ since they can be simulated.
I came across this interesting Boolean Floating Point Logic shader that proves how it would be done.
This guy does:
float bNOT ( float a ) { return 1.-a; }
#define bFALSE ( 0. ) // 0000 0
float bAND ( float a, float b ) { return a*b; } // 0001 1
float bNTHEN( float a, float b ) { return a*(1.-b); } // 0010 2
#define bA ( a ) // 0011 3
float bNIF ( float a, float b ) { return (1.-a)*b; } // 0100 4
#define bB ( b ) // 0101 5
float bXOR ( float a, float b ) { return a*(1.-b)+(1.-a)*b; } // 0110 6
float bOR ( float a, float b ) { return 1.-(1.-a)*(1.-b); } // 0111 7
float bNOR ( float a, float b ) { return (1.-a)*(1.-b); } // 1000 8
float bXNOR ( float a, float b ) { return 1.-(a*(1.-b)+(1.-a)*b);} // 1001 9
#define bNB ( 1.-b ) // 1010 10
float bTHEN ( float a, float b ) { return 1.-(1.-a)*b; } // 1011 11
#define bNA ( 1.-a ) // 1100 12
float bIF ( float a, float b ) { return 1.-a*(1.-b); } // 1101 13
float bNAND ( float a, float b ) { return 1.-a*b; } // 1110 14
#define bTRUE ( 1. ) // 1111 15And course shitty
/. butchers the alignment but you get the idea. -
Re:$700 GTFO
> Who in their right mind spends that much for a video card? Seriously, I want to know.
Questioning is fine -- but your tone makes you look clueless instead of being inquisitive.
I'll give you 4 reasons why I buy cards like this:
1. You're assuming ONLY gamers buy this card, which is incomplete, but I'll discuss this first. I prefer to game at 120+ Hz . I settle for 60 Hz at 2560x1440 (or higher). Graphics Cards are STILL too slow to run 4Ka, aka 2160p at 120 Hz. VR is still a performance hog. You'll want at least a nVidia 980 to get a great VR experience.
2. I do CUDA programming on my nVidia cards. It sounds like you don't understand what heterogeneous programming is.
* GPU's are fast and inflexible.
* CPU's are slow and flexible.Offloading selective work from the CPU to the GPU dramatically reduces processing time. GPUs have THOUSANDS of "cores" compared to the piddly "8-core" of CPUs. The cost per core of a typical i7 is $300 / 8 = ~$37. The 1080 Ti is $700 / 3,584 = ~ $0.19. Obviously this is an Apples-to-Oranges comparison but depending on _what_ kind of work your doing this could be EXTREMELY cost effective.
I still have an original Titan in my Linux dev box that I paid $1,000 because it has 1:3 float64 performance compared to the butchered 1:24 float64 performance of later cards -- Translation: For 64-bit floating point the original Titan SCREAMED -- each 64-bit floating point operation was only 1/3 as fast as a 32-bit float. Later video cards butchered the performance so 64-bit floats to be only 1/24 as fast.
3. Game developers, namely programmer and artists, which overlaps with my next point.
4. Graphics programmers, graphic gurus, and "shader junkies" like me buy cards like this -- that is anyone doing real-time rendering, or "pre-viz" work in the movie industry, also has an eye on getting hold of the fastest GPU's they can get. I don't know what GPU's was used in Avatar but they used a total of
...* 4,000 computers
* 40,000 CPUs ... just to render ONE frame that lasted 1 / 24th of a second ! I'm willing to bet they did a LOT of pre-visualization rendering work to get the scenes looking "just right"Anytime you need the ability to preview _complex_ rendering (shading / lighting) a faster GPU will help. You then distribute it to thousands of CPU's to do the actual rendering.
You would be less myopic if you would open your eyes to what people are doing with real-time pixel shaders these day. The site ShaderToy is extremely well known amongst us graphics programmers.
* Mario
Modern GPUs completely S-U-C-K for non-volumetric rendering. Using ray-marching is the standard "solution" to get great looking effects.
It would behoove you to read:
* Rendering Worlds with Two Triangles with raytracing on the GPU
* Clouds
Now I'm quite happy with my Titan and 980 Ti but others will be looking to upgrade. Whenever you upgrade you want to move up at least 3 tiers.
* Desktop GPU Performance Hierarchy Table
Instead of criticizing people for buying the fastest thing they can afford it would be more productive to open your eyes for how much computers are STILL d-o-g slow for graphics.
--
"One does not fully appreciate just how complicated reality is until one starts trying to simulate it." -
Re:$700 GTFO
> Who in their right mind spends that much for a video card? Seriously, I want to know.
Questioning is fine -- but your tone makes you look clueless instead of being inquisitive.
I'll give you 4 reasons why I buy cards like this:
1. You're assuming ONLY gamers buy this card, which is incomplete, but I'll discuss this first. I prefer to game at 120+ Hz . I settle for 60 Hz at 2560x1440 (or higher). Graphics Cards are STILL too slow to run 4Ka, aka 2160p at 120 Hz. VR is still a performance hog. You'll want at least a nVidia 980 to get a great VR experience.
2. I do CUDA programming on my nVidia cards. It sounds like you don't understand what heterogeneous programming is.
* GPU's are fast and inflexible.
* CPU's are slow and flexible.Offloading selective work from the CPU to the GPU dramatically reduces processing time. GPUs have THOUSANDS of "cores" compared to the piddly "8-core" of CPUs. The cost per core of a typical i7 is $300 / 8 = ~$37. The 1080 Ti is $700 / 3,584 = ~ $0.19. Obviously this is an Apples-to-Oranges comparison but depending on _what_ kind of work your doing this could be EXTREMELY cost effective.
I still have an original Titan in my Linux dev box that I paid $1,000 because it has 1:3 float64 performance compared to the butchered 1:24 float64 performance of later cards -- Translation: For 64-bit floating point the original Titan SCREAMED -- each 64-bit floating point operation was only 1/3 as fast as a 32-bit float. Later video cards butchered the performance so 64-bit floats to be only 1/24 as fast.
3. Game developers, namely programmer and artists, which overlaps with my next point.
4. Graphics programmers, graphic gurus, and "shader junkies" like me buy cards like this -- that is anyone doing real-time rendering, or "pre-viz" work in the movie industry, also has an eye on getting hold of the fastest GPU's they can get. I don't know what GPU's was used in Avatar but they used a total of
...* 4,000 computers
* 40,000 CPUs ... just to render ONE frame that lasted 1 / 24th of a second ! I'm willing to bet they did a LOT of pre-visualization rendering work to get the scenes looking "just right"Anytime you need the ability to preview _complex_ rendering (shading / lighting) a faster GPU will help. You then distribute it to thousands of CPU's to do the actual rendering.
You would be less myopic if you would open your eyes to what people are doing with real-time pixel shaders these day. The site ShaderToy is extremely well known amongst us graphics programmers.
* Mario
Modern GPUs completely S-U-C-K for non-volumetric rendering. Using ray-marching is the standard "solution" to get great looking effects.
It would behoove you to read:
* Rendering Worlds with Two Triangles with raytracing on the GPU
* Clouds
Now I'm quite happy with my Titan and 980 Ti but others will be looking to upgrade. Whenever you upgrade you want to move up at least 3 tiers.
* Desktop GPU Performance Hierarchy Table
Instead of criticizing people for buying the fastest thing they can afford it would be more productive to open your eyes for how much computers are STILL d-o-g slow for graphics.
--
"One does not fully appreciate just how complicated reality is until one starts trying to simulate it." -
Re:$700 GTFO
> Who in their right mind spends that much for a video card? Seriously, I want to know.
Questioning is fine -- but your tone makes you look clueless instead of being inquisitive.
I'll give you 4 reasons why I buy cards like this:
1. You're assuming ONLY gamers buy this card, which is incomplete, but I'll discuss this first. I prefer to game at 120+ Hz . I settle for 60 Hz at 2560x1440 (or higher). Graphics Cards are STILL too slow to run 4Ka, aka 2160p at 120 Hz. VR is still a performance hog. You'll want at least a nVidia 980 to get a great VR experience.
2. I do CUDA programming on my nVidia cards. It sounds like you don't understand what heterogeneous programming is.
* GPU's are fast and inflexible.
* CPU's are slow and flexible.Offloading selective work from the CPU to the GPU dramatically reduces processing time. GPUs have THOUSANDS of "cores" compared to the piddly "8-core" of CPUs. The cost per core of a typical i7 is $300 / 8 = ~$37. The 1080 Ti is $700 / 3,584 = ~ $0.19. Obviously this is an Apples-to-Oranges comparison but depending on _what_ kind of work your doing this could be EXTREMELY cost effective.
I still have an original Titan in my Linux dev box that I paid $1,000 because it has 1:3 float64 performance compared to the butchered 1:24 float64 performance of later cards -- Translation: For 64-bit floating point the original Titan SCREAMED -- each 64-bit floating point operation was only 1/3 as fast as a 32-bit float. Later video cards butchered the performance so 64-bit floats to be only 1/24 as fast.
3. Game developers, namely programmer and artists, which overlaps with my next point.
4. Graphics programmers, graphic gurus, and "shader junkies" like me buy cards like this -- that is anyone doing real-time rendering, or "pre-viz" work in the movie industry, also has an eye on getting hold of the fastest GPU's they can get. I don't know what GPU's was used in Avatar but they used a total of
...* 4,000 computers
* 40,000 CPUs ... just to render ONE frame that lasted 1 / 24th of a second ! I'm willing to bet they did a LOT of pre-visualization rendering work to get the scenes looking "just right"Anytime you need the ability to preview _complex_ rendering (shading / lighting) a faster GPU will help. You then distribute it to thousands of CPU's to do the actual rendering.
You would be less myopic if you would open your eyes to what people are doing with real-time pixel shaders these day. The site ShaderToy is extremely well known amongst us graphics programmers.
* Mario
Modern GPUs completely S-U-C-K for non-volumetric rendering. Using ray-marching is the standard "solution" to get great looking effects.
It would behoove you to read:
* Rendering Worlds with Two Triangles with raytracing on the GPU
* Clouds
Now I'm quite happy with my Titan and 980 Ti but others will be looking to upgrade. Whenever you upgrade you want to move up at least 3 tiers.
* Desktop GPU Performance Hierarchy Table
Instead of criticizing people for buying the fastest thing they can afford it would be more productive to open your eyes for how much computers are STILL d-o-g slow for graphics.
--
"One does not fully appreciate just how complicated reality is until one starts trying to simulate it." -
Re:$700 GTFO
> Who in their right mind spends that much for a video card? Seriously, I want to know.
Questioning is fine -- but your tone makes you look clueless instead of being inquisitive.
I'll give you 4 reasons why I buy cards like this:
1. You're assuming ONLY gamers buy this card, which is incomplete, but I'll discuss this first. I prefer to game at 120+ Hz . I settle for 60 Hz at 2560x1440 (or higher). Graphics Cards are STILL too slow to run 4Ka, aka 2160p at 120 Hz. VR is still a performance hog. You'll want at least a nVidia 980 to get a great VR experience.
2. I do CUDA programming on my nVidia cards. It sounds like you don't understand what heterogeneous programming is.
* GPU's are fast and inflexible.
* CPU's are slow and flexible.Offloading selective work from the CPU to the GPU dramatically reduces processing time. GPUs have THOUSANDS of "cores" compared to the piddly "8-core" of CPUs. The cost per core of a typical i7 is $300 / 8 = ~$37. The 1080 Ti is $700 / 3,584 = ~ $0.19. Obviously this is an Apples-to-Oranges comparison but depending on _what_ kind of work your doing this could be EXTREMELY cost effective.
I still have an original Titan in my Linux dev box that I paid $1,000 because it has 1:3 float64 performance compared to the butchered 1:24 float64 performance of later cards -- Translation: For 64-bit floating point the original Titan SCREAMED -- each 64-bit floating point operation was only 1/3 as fast as a 32-bit float. Later video cards butchered the performance so 64-bit floats to be only 1/24 as fast.
3. Game developers, namely programmer and artists, which overlaps with my next point.
4. Graphics programmers, graphic gurus, and "shader junkies" like me buy cards like this -- that is anyone doing real-time rendering, or "pre-viz" work in the movie industry, also has an eye on getting hold of the fastest GPU's they can get. I don't know what GPU's was used in Avatar but they used a total of
...* 4,000 computers
* 40,000 CPUs ... just to render ONE frame that lasted 1 / 24th of a second ! I'm willing to bet they did a LOT of pre-visualization rendering work to get the scenes looking "just right"Anytime you need the ability to preview _complex_ rendering (shading / lighting) a faster GPU will help. You then distribute it to thousands of CPU's to do the actual rendering.
You would be less myopic if you would open your eyes to what people are doing with real-time pixel shaders these day. The site ShaderToy is extremely well known amongst us graphics programmers.
* Mario
Modern GPUs completely S-U-C-K for non-volumetric rendering. Using ray-marching is the standard "solution" to get great looking effects.
It would behoove you to read:
* Rendering Worlds with Two Triangles with raytracing on the GPU
* Clouds
Now I'm quite happy with my Titan and 980 Ti but others will be looking to upgrade. Whenever you upgrade you want to move up at least 3 tiers.
* Desktop GPU Performance Hierarchy Table
Instead of criticizing people for buying the fastest thing they can afford it would be more productive to open your eyes for how much computers are STILL d-o-g slow for graphics.
--
"One does not fully appreciate just how complicated reality is until one starts trying to simulate it." -
Re:Can an ad be more blatant?
Well considering id shipped the first Quake killer, aka Quake 2, before anyone else, I don't think UT was as important as id creating the whole FPS genre in the first place.
* Wolfenstein
* Doom
* Quake
* Quake 2But I *do* have a soft spot for UT -- seeing the introduction running on software rendering and then on the 3Dfx was an amazing experience. Especially those fire dynamic textures !
Someone re-created the castle fly by sequence in WebGL !
-
Re:Solution looking for a problem?
> Seems like trying to solve a problem that doesnâ(TM)t exist.
Maybe not to you, but when I have a GTX 980 Ti in my Windows box and a (weak) GeForce 750M in the MacBook Pro the ability to use an external GPU in a standardized way would be godsend to us graphics / shader guys. I guess you never play around with ShaderToy on a laptop.
Anyways, you're missing the fundamental problem:
GPUs in laptops suck (for high performance).
I understand the heat + space + energy concerns but when you have to resort to hacks of the PCI Express then having a standard connection makes WAY more sense.
Now if only Apple would quit dragging their ass and support OpenGL 4.3+
... -
I have seen this exact demo...
... presented by Inigo Quilez and Pol Jeremias, last year at GDC. Shadertoy had this for more than a year (if you want to warm up your GPU : https://www.shadertoy.com).
-
Cool for ShaderToy
Cool, finally a card that can run practically all entries in ShaderToy in real-time
:-) -
Re:Difficult to hide GPU code
My understanding of GPU coding environment (not as a programmer, thank God, I just listened to job applicants and their presentations) is that, it is quite limited, almost all interpreted code. Some strange combination of C like code being written and then passed to renderers and shaders. It gets kind of "compiled" in place and gets executed.
Yep. Usually at application startup, shaders are compiled. Later in your renderer code you bind that shader just before you want to draw something using it.
On the other hand, these GPU computing codes are so damned complex they might not need additional obfuscation.
Not necessarily. Shaders can be very simple as well. They usually range from some tens to some hundreds of lines. Check out Shadertoy to see some.
-
Re:DirectX is obsolete
> OpenGL (or rather, some variants thereof) is the leading API for use on portable devices.
That is Open GL ES 2.x now 3.x. Even on the -desktop- we have WebGL which is basically OpenGL ES inside a browser.
For the MS fan-boys, let me know when I can write and run shaders in a browser.
I *love* ShaderToy. It is awesome for prototyping.
-
Re:Long story short
JavaScript. You can't do Unreal Engine in Flash, but it's been done in JavaScript. Want to know what else JavaScript can do that Flash could never do? Shadertoy
Also, every single Flash game out there sucks major ass. -
Wolf3D shader
Want to see something cool? Here's something quite close to the Wolfenstein 3D engine implemented in a GPU shader. Obviously you cannot control the game as the GPU has no access to input devices. But the whole thing is calculated on the GPU, running silky smooth.
Browse the whole site of Shadertoy, it's fun stuff. Although in my experience WebGL likes still to explode a lot so it's a matter of luck if you can get the site to work.