Could PlayStation 4 breathe new life into Software Based Rendering?

Status
Not open for further replies.
Generally when people say software rendering they mean not using the hardware rasterizer and only using compute.
 
& also if that was the case why would Tim Sweeney talk about going back 100% "Software" Rendering & using CUDA to do it on a GPU without using DirectX ?
Sweeney's had a hard-on for software-based rendering for going on fifteen fucking years now and it hasn't ever led to anything. He's a smart guy for sure, but he really should know a lame duck when he sees one...and he just don't. Or won't. For whatever bizarre reason.
 
Sweeney's had a hard-on for software-based rendering for going on fifteen fucking years now and it hasn't ever led to anything. He's a smart guy for sure, but he really should know a lame duck when he sees one...and he just don't. Or won't. For whatever bizarre reason.

Don't we have sw-based rendering (at least on PCs) now, only everything is hidden by the drivers?
 
Errr... No? :) Not sure what you mean, really. Shader processors don't turn the whole rendering process into software; today's GPUs still use pretty much as much fixed hardware as 3D accelerators of the past in their texture filtering and address generation, poly setup, rasterization stages and so on; the first generation of GPUs had entirely hardwired T&L so they had additional fixed function stuff, but after the geforce 3 that too changed into "software" (primitive compared to today, of course.)
 
I think people confuse hardware rendering, software rendering, and DirectX9's mostly fixed pipeline. The point would be that you could have a pipeline using any part of the hardware at any time, in any order, with all data in memory available to every component (including GPU/CPU) at every time (I'm exaggerating a bit of course)

Not entirely as simple as that of course, but it does open up things a bit?
 
Perhaps people need to define what they mean by "Software (Based) Rendering"? A lot of programmable solutions to rendering can be performed on the very programmable modern GPUs (eg. vertex prepass as described by Cerny), but that's not adhering to the principle of the software renderer wherein there are no hardware functions applied and processing is by generic computation units. We effectively have a middle ground.
 
Perhaps people need to define what they mean by "Software (Based) Rendering"? A lot of programmable solutions to rendering can be performed on the very programmable modern GPUs (eg. vertex prepass as described by Cerny), but that's not adhering to the principle of the software renderer wherein there are no hardware functions applied and processing is by generic computation units. We effectively have a middle ground.

Things get more complicated when you think of traditional software based rendering as using the CPU only without accessing an external device like a GPU.

But now that GPU's have been bolted onto CPU's does that change things? I mean it still is a GPU, it's just not entirely external to the CPU. Then again it also still isn't as general purpose as a CPU.

I think someone like Tim Sweeney (a big proponent of software rendering due to not being limited by what a GPU can do) would still not consider anything using the GPU portions of an APU as software rendering as you're still very much limited by some of the fixed function hardware of the GPU as well as being relatively limited by the still narrow focus of GPUs.

Perhaps at some point in the future where there is no distinction between the CPU and GPU in an APU and without the limitations and narrow focus of modern GPUs, then we'll be at a point where you could consider everything software rendered then we might get there.

But I don't see anything like that happening anytime soon. So, in that sense, no. PS4 won't be doing anything to bring back software rendering.

Regards,
SB
 
I would approach the definition in terms of intention. Software rendering contrasts with hardware rendering by being completely free in approach where the hardware imposes some limitations in how you render in order to get the speed advantages of the hardware. Once the hardware no longer makes such impositions, it's a 'software renderer' and you don't have a 'GPU' but just a 'BFPU' (like BFG from Doom).

At the moment, the GPU aspects of hardware are imposing some rendering limitations such as rasterisation of pixel data. A lot of flexibility can be added, and compute could bypass GPUs entirely and render in novel ways, forgoing parts of the GPU hardware, but we're unlikely to lose hardware graphics functions in games for this generation.

Which is basically agreeing with SB above. ;)
 
Is their any info on The Witness for the PS4? I have a feeling that it's using Software Based Rendering & also didn't Flower for the PS3 use Software Based Rendering ?
 
Is their any info on The Witness for the PS4? I have a feeling that it's using Software Based Rendering & also didn't Flower for the PS3 use Software Based Rendering ?

I don't quite remember The Witness. Did a quick google. If it's a multi-platform game, then I doubt it will use extensive software rendering techniques. Where did you read The Witness tech info from ?

I remember Flower uses the SPUs to render the grasses and petals, which is basically everywhere (plus the wind controller physics). It is a beautiful title.

EDIT:
http://www.thatgamecompany.com/forum/viewtopic.php?t=2296
 
I believe Flower just uses SPUs to do wind/physics interaction simulation on the grass, which is then rendered traditionally. ...Or that's the impression I got from interviews done way back when, anyway. *shrug*
 
I don't quite remember The Witness. Did a quick google. If it's a multi-platform game, then I doubt it will use extensive software rendering techniques. Where did you read The Witness tech info from ?

I remember Flower uses the SPUs to render the grasses and petals, which is basically everywhere (plus the wind controller physics). It is a beautiful title.

EDIT:
http://www.thatgamecompany.com/forum/viewtopic.php?t=2296

I haven't read any info on The Witness I just said I have a feeling that it will be using Software Based Rendering. I don't know why it's just the look of it that says to me Software Based Rendering, also why did multi-platform make you doubt it's using software rendering techniques?


& about Flower I think PSN games like that will be the type of games that we will see the most software based rendering in ,stuff like Minecraft but using Voxels will more than likely make it's way to the PS4 & Xbox 3.

 
I haven't read any info on The Witness I just said I have a feeling that it will be using Software Based Rendering. I don't know why it's just the look of it that says to me Software Based Rendering, also why did multi-platform make you doubt it's using software rendering techniques?


& about Flower I think PSN games like that will be the type of games that we will see the most software based rendering in ,stuff like Minecraft but using Voxels will more than likely make it's way to the PS4 & Xbox 3.


I think you have misunderstood.

The video you linked to does not look like a voxel renderer to me in the traditional sense (ie, raytraced SVO) - it looks like a triangle rasterization based renderer where the triangle geometry is generated from a voxel scene (with grass/tree instances placed about, etc). It does look very nice, but I doubt it is a 'software' renderer.

[Edit] Yup, " voxel to polygon transformation pipeline" etc; http://voxelfarm.com/vfweb/engine.html

Also the term 'software based renderer' is so loose I don't really know where to begin. Please be more specific.

I expect the use of SPUs in Flower was almost certainly triangle setup and instancing, animation etc.
 
I think you have misunderstood.

The video you linked to does not look like a voxel renderer to me in the traditional sense (ie, raytraced SVO) - it looks like a triangle rasterization based renderer where the triangle geometry is generated from a voxel scene (with grass/tree instances placed about, etc). It does look very nice, but I doubt it is a 'software' renderer.

[Edit] Yup, " voxel to polygon transformation pipeline" etc; http://voxelfarm.com/vfweb/engine.html

Also the term 'software based renderer' is so loose I don't really know where to begin. Please be more specific.

I expect the use of SPUs in Flower was almost certainly triangle setup and instancing, animation etc.

The video was a example of using voxels for a game like that I didn't check for the details on it but I'm still talking about Software based rendering, maybe I should have used Voxatron but I was just talking about a game like Minecraft using Voxels.

 
The video was a example of using voxels for a game like that I didn't check for the details on it but I'm still talking about Software based rendering, maybe I should have used Voxatron but I was just talking about a game like Minecraft using Voxels.

The Minecraft world is likely represented using voxels or some similar data structure, but it's still rendered with triangles (in their case via OpenGL).

Once again; saying 'Software based rendering' is pretty meaningless really. It made sense when graphics hardware was fixed function, as 'software rendering' typically meant the opposite of 'hardware accelerated' but that is no longer the case. You could write a rasterizer purely in compute shaders if you wanted - would that be software based rendering?

As for 'the witness', the distinct look to the game is the result of a long development effort to produce high quality offline baked lightmaps with exaggerated bounce lighting. At one point they evaluated Enlighten for this purpose. It's still (once again) rasterized triangles on the GPU.
 
I expect the use of SPUs in Flower was almost certainly triangle setup and instancing, animation etc.

At first I thought so too, but there are more...

First, we divide the world into 256x512 cells. Each cell has 16 bytes of grass data for things like color, height, etc. Our artists specify most of the data, but we procedurally generate some stuff, too, like an ambient wind force based on Perlin noise. We don't store any data per grass blade, instead generating all the blade-specific attributes, such as position and orientation, based on seeded random numbers.

Shading is done per-vertex on the SPUs, so the vertex and fragment programs are just pass-throughs, lightening the load on the PS3's notoriously underachieving graphics card.

We frustum cull grass on a cell basis and calculate density per cell according to a highly voodooed version of 1 / (dist to camera). One trick is to draw the grass that is farther away, and therefore less dense, thicker. Grass in the distance is still screen space thinner than grass up close, but just not as much as it should be given realistic perspective. In practice, people don't notice that the thickness isn't exactly right, so we get away with less grass to cover the same amount of terrain.

For high detail wind effects (such as the wake left by the petal swarm, or the little disturbances caused by flowers growing), again, we pretty much just rely on the power of the SPUs. We have a "RippleBarn" containing 128 ripples. A ripple is a ring which has a thickness and a strength. Ripples push the grass they touch. We cull ripples on a grass cell basis, so not every single grass element is testing against all 128 ripples, but there are still a ridiculous number of tests going on, and the SPUs just eat right through them.
 
Status
Not open for further replies.
Back
Top