PDA

View Full Version : Porting Eric Bruneton's Ocean rendeirng to GLSL 3.2/ OSX



Timstir
07-11-2015, 10:17 AM
I am trying to get Eric Bruneton's "Real-time Realistic Ocean Lighting using Seamless Transitions from Geometry to BRDF" running on OSX 10.10 Yosemite, OpenGL 4.1, or at least using GLSL 3.2 or later.
You can get the code form his website (I can't link as a newbie here)

I have his code running under a OGL 2.1 context with a few minor changes. It does have some graphical errors though. The nature of the corruption changes each time I run it but normally the ocean gets a lot of black triangles. Occasionally I will run it and I don't get the black triangles and things look much better but there are other oddities, e.g. I don't get the special highlights from the sun rendered properly, and also the output looks different to his videos as if there is another fragment shader error.
First question: Anyone get similar issues, any solutions?

Anyway, rather than worrying too much about the OGL 2.1 artifacts I really want to port the code to be at least OGL 3.2/GLSL3.2 core compliant. I mainly develop on OSX and Apple doesn't provide any backwards compatibility. I've been trying to port the code but I am only a beginner GL coder. Even finding resources on how to update GLSL120 code to 320 or later seems scarce and it is proving very hard to find clear documentation about the differences and changes that should be done.

Second question: Anyone ported his code to OGL 3.2 or later? I don't want to reinvent the wheel here. I believe his ocean rendering and atmospheric scattering demos have been popular in the community.
I have both compiling and running but nothing is rendered at all. I'm in the midst of trying to debug this so don't have a specific query but after sinking in many hours of my limited free-time I thought I would reach out to see if someone has done similar?
Actually what I would really like is to get his Proland terrain engine up and running on OSX. I have similar issues getting his ORK library (a dependency of Proland) to display anything correctly but that code base is much bigger and more complex so i thought I would start with his tech demos.

Thanks for reading.

Dark Photon
07-11-2015, 01:56 PM
What GPU and GPU driver version that you're porting on now with OpenGL 2.1?

What GPU and GPU driver version are you planning to run on OSX10.10 + OpenGL 3.2-4.1?

What changes have you made?

Provide a link to the source package(s) you're trying to port.
(As a new user, you won't be able to put the http[s]:, but put spaces in it or whatever you need to do to get it up there, and I or one of the moderators will update it for you.)

Timstir
07-12-2015, 06:25 AM
What GPU and GPU driver version that you're porting on now with OpenGL 2.1?

What GPU and GPU driver version are you planning to run on OSX10.10 + OpenGL 3.2-4.1?

What changes have you made?

Provide a link to the source package(s) you're trying to port.
(As a new user, you won't be able to put the http[s]:, but put spaces in it or whatever you need to do to get it up there, and I or one of the moderators will update it for you.)

Thank you for your reply.
RENDERER: AMD Radeon HD 6970M OpenGL Engine
OS: OSX 10.10.2

When Running the riginal code under POGL2.1: I have this context:
VERSION: 2.1 ATI-1.30.5
GLSL: 1.20

When requesting 3.2 under OSX I will get version 4.1, this is fine and really what I want:
VERSION: 4.1 ATI-1.30.5
GLSL: 4.10


I aim to be targeting version glsl 410 as that is the latst Apple supports.


The Original code can be found here:
http://www-evasion.imag.fr/people/Eric.Bruneton/OceanLightingFFT.zip


With info here:
http://www-evasion.imag.fr/people/Eric.Bruneton/


i have changed the GLSL code to compile under 4.1: this included changing texture2D to texture, declaring an 'out' variabel fpr color instead of gl_FragColor, and changing the glVetrex immediate mode rendering to use a VBO. The only geometery to render is a quad. I have tested my VBO quad rendering independently and that works.

I am not at my computer now so cant post my changes, will do later.
Tim