Starting point to add a new procedural texture to blender?

I was tempted to try and add aaOcean (GPLv3) into blender. It has some advantages compared to the integrated ocean (not least that the ocean stays consistent as you increase the bitmap size). I’m not entirely certain how to start with this in terms of the blender system, though. Is there a guide somewhere as to how to add an initial set of files that constitute a blank canvas procedural texture? I stumbled across something a while back, but can’t find it again.

Couple ways to go about it.

  • The easiest would probably be to procedurally generate an image/image sequence outside of Blender, then bring them in in a Blender shader. A simple height map, with microdisplacement. Not elegant, I know, but works on a deadline.
  • You could probably integrate the procedural function with OSL code (or maybe even pure shader nodes?). The key would be the formula, which you’d need to dig around in the aaOcean source code for - this would, of course, only work on the CPU, though I’m certain you could find a way to bake the data to a height map.
  • Probably the most difficult method is to fork Blender and rewrite the ocean modifier. You could then write the aaOcean function in there. This of course wouldn’t be a very nice experience if you’re not quite familiar with both C and Blender’s source code. You’d most likely also have to solve backwards compatibility with the existing ocean modifier to have any hope of getting it merged.

aaOcean looks interesting - please show us anything you come up with!

the old way of creating advanced procedural textures with the nodes in the old blender render internal was not bad … I do not know if it will be resumed and evolved … currently it does not work anymore obviously, since blender render internal has been removed and replaced with eevee

My thought was to start a new ocean type, rather than replacing the existing one. I’d hoped there were ‘templates’ for such things around that provided the skeleton of what was needed. I’ll start poking through the blender source soon to see if I can figure out the structure of the existing ocean system and work out how to make a derivative using aaOcean.

I had intended … I was thinking aloud … was to say that it would also be a good point to resume the old method of creating procedural textures with the nodes that now no longer work

So I’ve started looking at this, trying to figure out the way the existing ocean is implemented as a base for the aaOcean version. There seem to be implementation details across various areas and it’s all largely uncommented code.

I’m tempted to offer a bounty for this. Not sure what it might need to be and where to make the suggestion…