PDA

View Full Version : OIT linked list implementation in Linux / OpenGL 1.2 / C



staged
08-26-2012, 11:57 AM
I'm trying to see how I could take Nicolas Thibieroz's per-pixel linked list implementation (for DirectX Aug 2009 or newer, OpenGL 1.5 compatible graphics card, DirectX 9+ compatible graphics card, WinXP/Vista/7, Visual C++ 2008+, contemporary graphics card drivers, 2G+ RAM) and adapt it to:

C code, OpenGL 1.2 implemented via X11 (Linux) and Mesa (Windows); thus it's software-implemented OpenGL, thus maybe slower, but more universal in spite of lower end hardware, may omit some adv. features.

Thibieroz's work: developer.amd.com/gpu_assets/OIT%20and%20Indirect%20Illumination%20using%20DX11 %20Linked%20Lists_forweb.ppsx

I'm not worried about C++ --> C translation and linked lists, but is it possible to adapt the rest of Thibieroz's implementation to OpenGL 1.2 implemented via X11 and Mesa with success?

If there's no answer, what questions should I be asking to reach the finish line on this?

It looks like a lot of constructs are not available to me? So how do I substitute?:confused::devilish:

Alfonse Reinheart
08-26-2012, 01:00 PM
Nicolas Thibieroz's per-pixel linked list implementation (for DirectX Aug 2009 or newer, OpenGL 1.5 compatible graphics card, DirectX 9+ compatible graphics card, WinXP/Vista/7, Visual C++ 2008+, contemporary graphics card drivers, 2G+ RAM)

The document you link to (http://ebookbrowse.com/oit-and-indirect-illumination-using-dx11-linked-lists-forweb-pptx-d112168921) describes a technique that requires Direct3D 11-class hardware. Not DX9.


OpenGL 1.2

OpenGL 1.2? The OpenGL 1.2 that came out fourteen years ago and didn't even have shaders?

No; you cannot implement it in OpenGL 1.2. It can only be implemented in GL 4.x-class hardware using specialized shader logic.

Or did you think that OIT was something simple that could have been implemented on any old thing and a generation of graphics programmers just never realized it?

staged
08-26-2012, 01:15 PM
The document you link to (http://ebookbrowse.com/oit-and-indirect-illumination-using-dx11-linked-lists-forweb-pptx-d112168921) describes a technique that requires Direct3D 11-class hardware. Not DX9.



OpenGL 1.2? The OpenGL 1.2 that came out fourteen years ago and didn't even have shaders?

No; you cannot implement it in OpenGL 1.2. It can only be implemented in GL 4.x-class hardware using specialized shader logic.

Or did you think that OIT was something simple that could have been implemented on any old thing and a generation of graphics programmers just never realized it?

Thanks for the reply. I knew it was a long shot, but had to ask in case.

Alfonse, aside from upgrading my current development environment, what methods would you suggest (web links to further elucidate as well) under my current development environment? Pre-sorted primitives via BSP trees the only solution? That seems rife with problems if there's an arbitrary number of objects and when we rotate the object dynamically in a viewing environment. A colleague had some opaque artifacts pop in and out during dynamic view rotation, probably from depth collisions, despite coding to classify polygons at same depths and coincident angles.

Thanks in advance.