11
$\begingroup$

This is a common problem I've found in a few jobs related with ocean. When the camera is close to the surface, looking at the horizon, those black areas appear. Either with a normal texture or not.

enter image description here enter image description here

It looks there's a problem with ocean's self reflection, but I can't avoid this by adjusting the bounces. Any ideas?

Here is the .blend file. As you can see, the environment is visible only through camera and glossy, and the problem keeps with a blank environment too. The scene is lit with a sun lamp and plain color environment.

$\endgroup$
11
  • $\begingroup$ I assume you are using an environment texture, so the lighting is even? $\endgroup$
    – J Sargent
    Commented Feb 16, 2015 at 15:16
  • 2
    $\begingroup$ Could you post a .blend with the images packed into it? $\endgroup$ Commented Feb 16, 2015 at 16:04
  • $\begingroup$ This is normal behavior, but I am not sure exactly why. The .blend would help a lot $\endgroup$
    – J Sargent
    Commented Feb 16, 2015 at 21:22
  • $\begingroup$ I've just posted the .blend file. The images are not the same, but it wasn't HDR so the results are the same. $\endgroup$ Commented Feb 17, 2015 at 10:23
  • $\begingroup$ I checked most of the common causes (bad environment, normals, bad material setup) and none of these seem to be the problem. I am guessing it's either a bug or the limitation of what Cycles can simulate. $\endgroup$
    – Mike Pan
    Commented Feb 18, 2015 at 5:08

3 Answers 3

7
$\begingroup$

I'm not completely sure what's causing this, I suspect it is just how Cycles works and is not strictly a bug - similar to the terminator issue.

In order to work around it, we can modify the surface normals slightly in the material:

fixed

From the manual:

Incoming

Vector pointing towards the point the shading point is being viewed from.

Thus adding a tiny bit of the Incoming vector will skew the surface normal just enough to hide the artifacts.

Note that changing the surface normal means our reflections will be incorrect - so we need to change it as little as possible, otherwise the reflections of objects and clouds will be noticeably weird.

$\endgroup$
0
$\begingroup$

Your ocean shader's glossy and refraction nodes need a bit roughness (more than 0).
enter image description here

$\endgroup$
2
  • $\begingroup$ While increasing roughness hides the problem slightly (but not entirely), it really has nothing to do with the cause. $\endgroup$
    – Greg Zaal
    Commented Feb 23, 2015 at 14:54
  • $\begingroup$ did not find anything better $\endgroup$
    – Bithur
    Commented Feb 23, 2015 at 14:56
-1
$\begingroup$

Smooth shaded Reflections- bug

I think that there is generally a problem about shading of glossy materials with "fake normals". Even if you smooth an object, this problem is there, but it isn't, if you don't adjust the normals.

$\endgroup$
3
  • $\begingroup$ The reason your sphere has black edges is because it has not been subdivided. $\endgroup$
    – 10 Replies
    Commented Dec 1, 2016 at 20:45
  • $\begingroup$ @10Replies That is not a reason to have the black edges, but yes the sphere is not subdivided as far as it could be, and subdividing it further may appear to fix the problem...you reach a point when you don't want to keep subdividing because the blend gets too complex for your computer. $\endgroup$
    – Jake Dube
    Commented Dec 1, 2016 at 22:24
  • 1
    $\begingroup$ @pycoder, the black edge effect is much more subtle from a distance, so if you have something with many objects, you really don't need subsurf except up close. Also, the asker said "Subdiv doesn't fix the problem at all." $\endgroup$
    – 10 Replies
    Commented Dec 2, 2016 at 2:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .