0
$\begingroup$

I am implementing a water simulation program using OpenGL. However I could not decide which technique to use for reflection and refraction. The water is wavy and there are dynamic objects around the water.

First, I considered dynamic environment mapping. However, it seems that it is not quite suitable for small environment, because the close objects are not reflected correctly.

Second, I considered SSR technique, but it does not reflect non visible objects and because realism is more important than performance for this project I gave up on SSR.

Is there any other good algorithms to do reflection and refraction?

$\endgroup$
5
  • 2
    $\begingroup$ If you need the reflections off wavy water to be that realistic, you should use ray-tracing. Any rasterization technique is going to involve some trade-offs. $\endgroup$ Commented Feb 20, 2018 at 16:12
  • $\begingroup$ Check new McGuire's paper which introduces real time raytracing using grid of cubemaps. For dynamic objects, voxel cone tracing might be good because voxelization in real time is quite gpu friendly. $\endgroup$ Commented Feb 20, 2018 at 16:39
  • $\begingroup$ You can also combine both SSR and VCT when SSR fails. The downside of voxels is finite precision measured in voxel size. $\endgroup$ Commented Feb 20, 2018 at 16:54
  • $\begingroup$ Thank you for the comments. UE4's planar Reflections looks very realistic. Is there any article about how Planar Reflection works? docs.unrealengine.com/latest/INT/Engine/Rendering/… $\endgroup$ Commented Feb 21, 2018 at 14:56
  • 1
    $\begingroup$ Have you considered using the so-called planar reflections using an extra camera from the other side of the reflective plane? Usually warping the uv maps of the projected image acording to normals is enough to fake the bumpiness convincingly $\endgroup$ Commented Feb 22, 2018 at 1:35

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.