Another shout-out to my work with IMG - this one is my favorite.
It is a document I wrote to explain how to actually *DO* PBR, and added code samples to the PowerVR SDK.
My original material:
https://docs.imgtec.com/PBR_with_IBL_for_PVR/topics/pbr_ibl_introduction.html
My colleague Tom Lewis is also turning this into a series of blog posts.
https://www.imgtec.com/blog/physically-based-rendering-powervr/
https://www.imgtec.com/blog/physically-based-rendering-with-powervr-part-2/
A developer's diary of Graphics and Physics - Gerasimos "Gerry" Raptis
Tuesday, December 17, 2019
Friday, June 9, 2017
This has been a long long while - this blog could have been considered abandoned.
But I thought I'd re-link to some of the work I have been doing for Imagination Technologies lately, the GRLAA techinque.
This is a wide line anti-aliasing technique I came up with for our SDK's Navigation demo.
https://www.imgtec.com/blog/grlaa-for-anti-aliasing-in-nav-applications/
Enjoy!
But I thought I'd re-link to some of the work I have been doing for Imagination Technologies lately, the GRLAA techinque.
This is a wide line anti-aliasing technique I came up with for our SDK's Navigation demo.
https://www.imgtec.com/blog/grlaa-for-anti-aliasing-in-nav-applications/
Enjoy!
Sunday, June 2, 2013
Compute Shaders - Parallel reduction for luminance measurement
So, how do we actually use the HDR render target mentioned in the previous post? What can we actually DO with color values that are greater than 1.0, since the screen will ultimately display them as 1.0? And how do we use a compute shader to make our life easier?
HDR Lighting - Intro to HDR, and HDR render target
HDR lighting is a very very big subject, but in a graphics or gaming context it basically means using some kind of average luminance measurements or other heuristic to tone-map our image differently to the "classic" effect. The reason to do that is that the "classic", LDR format actually proves too restrictive to provide us with a very realistic or artistically beautiful image on a scene that is designed to be real-time created.
Sunday, May 12, 2013
Compute Shaders - Overview and theory
The compute shaders in both DirectX and OpenGL allow us to use the GPU in a way that is not pipelined as object->primitive->pixel.
In one sentence, what they allow you to do is dispatch an arbitrary number of GPU computing threads that operate in an arbitrary way on resources.
In one sentence, what they allow you to do is dispatch an arbitrary number of GPU computing threads that operate in an arbitrary way on resources.
Monday, May 6, 2013
GR Graphics - Post Processing
The conceptually and temporally final step before display on the screen, which is also optional but practically ever-present in modern graphics, is post-processing.
Post processing is basically any processing that happens after you create a ready - to - display 2D image from your 3D model data. HLSL and GLSL gives you a very convenient place to perform that post processing in the pixel shader.
Post processing is basically any processing that happens after you create a ready - to - display 2D image from your 3D model data. HLSL and GLSL gives you a very convenient place to perform that post processing in the pixel shader.
Thursday, May 2, 2013
Deferred shading - Dealing with low precision normal artifacts
Monday, April 29, 2013
Deferred Shading - First results
After two posts of theory, and some necessary changes to my classes, the first prototype deferred renderer is ready.
In this post we see the actual results of different G-Buffer formats.
In this post we see the actual results of different G-Buffer formats.
Saturday, April 27, 2013
Deferred Shading - The G-Buffer
From my point of view, most important aspect and point of interest so far in a classic deferred renderer is the G-Buffer.
As they say, the devil is in the details - while it is a quite simple and elegant idea (storing material properties per-pixel instead of calculating results at first pass), it can get quite involved as soon as you enter the real, performance-optimized, world.
Sunday, April 21, 2013
Deferred shading - some theory
All right, this post will be a little incomplete due to extreme lack of time the past days.
Two words for theory, and a promise of an update to the post with some screenshots in the week.
Monday, April 15, 2013
Multiple shadow-casting lights, long overdue
Ok, I admit it. So far, I cheated. I only used a single light, with provision but without implementation for multiple lights, especially shadow-casting ones.
Screenshot first, talk later.
Screenshot first, talk later.
Sunday, April 14, 2013
True displacement mapping with tessellation
Well, we are now officially in 2013+ territory.
The techniques implemented here actually will not work unless you have a new generation graphics card capable of OpenGL 4.2 or DirectX 11.
Displacement mapping, as a theory, is not new. It is in fact quite simpler in essence than bump mapping. But the implementation has a big problem.
The techniques implemented here actually will not work unless you have a new generation graphics card capable of OpenGL 4.2 or DirectX 11.
Displacement mapping, as a theory, is not new. It is in fact quite simpler in essence than bump mapping. But the implementation has a big problem.
Saturday, April 13, 2013
Parallax Mapping (or, tangent space revisited)
The eye gets used to what it's seeing quite soon.
Normal mapping is actually an order of magnitude more realistic that classic texturing.
But the illusion is fragile. The illusion of depth is quite easy to see through as soon as the viewing angle changes - the real flatness of the surface becomes apparent, or at least easily detectable, soon enough.
Something more is needed, something basically unrelated to normal mapping, but ultimately similar in tools to it.
Parallax mapping, or, the simplest form of Virtual Displacement Mapping.
Normal mapping is actually an order of magnitude more realistic that classic texturing.
But the illusion is fragile. The illusion of depth is quite easy to see through as soon as the viewing angle changes - the real flatness of the surface becomes apparent, or at least easily detectable, soon enough.
Something more is needed, something basically unrelated to normal mapping, but ultimately similar in tools to it.
Parallax mapping, or, the simplest form of Virtual Displacement Mapping.
Friday, April 12, 2013
Spot the difference?
Thursday, April 11, 2013
DirectX takes shape
While it might not be the most efficient way to create to parallel libraries, the "Big Bang" technique sometimes has its merits. Here I describe the first steps of porting the GR Graphics library to DirectX.
Wednesday, April 10, 2013
Hello, DirectX
The biggest, step apart from the first, was putting my money where my mouth is.
Actually proving that GR Graphics design was Api - Agnostic.
That I could expose the same classes to use DirectX or OpenGl, even though I had not finished templatizing everything yet.
Actually proving that GR Graphics design was Api - Agnostic.
That I could expose the same classes to use DirectX or OpenGl, even though I had not finished templatizing everything yet.
Tuesday, April 9, 2013
GR Graphics GL - A tesselated terrain
Ok, I admit, back then the first time I read about tessellation a few years ago, when I was still using OpenGl immediate mode and thought it was difficult, I was quite intimidated and thought it was some fancy black - magic thing that is impossible to grasp, let alone do.
Well, it turned out a lot less intimidating than I thought at first.
Well, it turned out a lot less intimidating than I thought at first.
Monday, April 8, 2013
The road so far : Wows and Shadow Mapping
Creating a Graphics library is really a fun and creative project. The "oh-snap" moments, or "Wows" when you get to the next level of realism feature are just beautiful.
Or it might just be me, in which case, just substitute the "You" by "I" and the present tense with the past tense.
Or it might just be me, in which case, just substitute the "You" by "I" and the present tense with the past tense.
Sunday, April 7, 2013
GR Graphics GL - Getting closer to the present with Normal maps
Features added, features enhanced, interfaces polished and others, it was a time to leave 1995 and simple texturing, and start with a few interesting features had to be implemented.
I downloaded a couple of free normalmaps, and implemented the NormalMap plugins and shaders half expecting it to be as dissapointingly easy as the texture ones.
I was in for a surprise.
I downloaded a couple of free normalmaps, and implemented the NormalMap plugins and shaders half expecting it to be as dissapointingly easy as the texture ones.
I was in for a surprise.
Saturday, April 6, 2013
Gr Graphics GL - Textures and Spotlights, plus the explanation of templated configurations
The next shader was for classic, old fashioned, simple texturing.
Subscribe to:
Posts (Atom)