Page 4 of 5

Re: BPlanets

Posted: Wed Oct 07, 2020 10:32 pm
by Cholmondely
Ditto!

Re: BPlanets

Posted: Thu Oct 08, 2020 4:17 pm
by Commander_X
Nice to see some more opinions in the thread!
Regarding the dynamic generation of the maps, for those that are not so faint of heart, are managing correctly their kitchen sink, and know how to keep their cats away from any harm, here's a quick receipt that can be a starting point to move the map generation from inside Objective-C code (as done currently, and unfortunately on the CPU), in the fragment shader (which executes on the GPU):

Step 1. Make all your planets green -- in the oolite-default-planet.fragment file in your Resources/Shaders folder (of course don't forget to back-up, or even better, use an AddOns/Shader approach), add a

Code: Select all

normal = vec3(0, 0, 1);
right after

Code: Select all

#else
   vec3 normal = vec3(0, 0, 1);
#endif
(i.e. such that the above becomes

Code: Select all

#else
  vec3 normal = vec3(0, 0, 1);
#endif
  normal = vec3(0, 0, 1);
)
Similarly, comment out

Code: Select all

vec3 diffuseColor = diffuseMapSample.rgb;
and add

Code: Select all

vec3 diffuseColor = vec3(0.0, 1.0, 0.0);
right after (i.e. "transforming" the first line into two:

Code: Select all

// vec3 diffuseColor = diffuseMapSample.rgb;
vec3 diffuseColor = vec3(0.0, 1.0, 0.0);
)
Step 2. Let there be map - create/copy/adapt any favorite GLSL noise based sample you consider worthy to replace the new diffuseColor value (and deduce the new normal value from it)

Re: BPlanets

Posted: Sun Oct 18, 2020 2:25 pm
by submersible
Commander_X wrote:
2. The initial package has only Earth like variants. As mentioned above, I used Povray Planets as a source of inspiration, and tried to cover this initial type of planet. As a reference, I classified the G1 Povray Planets in 5 main types: Terran (119), Barren (115), Water (7), Winter (5), and Gas Giants (10).
To clarify Water and Winter are extremes of 'Continental' in the povray planets code, sometimes they're just overrun with polar ice or have minimal landmass.

Redspear wrote: Tue Jun 16, 2020 6:18 pm
Commander_X wrote: Tue Jun 16, 2020 2:33 pm
I have some ideas about how to deal with this...
I sort of cheated in Additional Planets and used real world cloud layers. I think there were 6 (or was it 8?) different layers that I used but I didn't fully exploit their potential.
Cheating is totally encouraged. I confess that the gas giants in povray planets are cheating because they are not entirely procedural. There is procedural turbulence and warping but it is driven by some iterative simulation output maps.

Image

Re: BPlanets

Posted: Mon Oct 19, 2020 3:57 am
by Commander_X
submersible wrote: Sun Oct 18, 2020 2:25 pm
[...]
To clarify Water and Winter are extremes of 'Continental' in the povray planets code, sometimes they're just overrun with polar ice or have minimal landmass.
[...]
Good point, will check if I can tweak the shaders to provide for these two types, just like that ;)
submersible wrote: Sun Oct 18, 2020 2:25 pm
[...]
Cheating is totally encouraged.
[...]
I can hear you! But given the whole set of tricks Blender provides, if I find I need to use an external texture that can be "approximated" procedurally, I have the tendency to take the time to make that effort.

Re: BPlanets

Posted: Thu Nov 05, 2020 2:34 am
by Reval
These look really spectacular. Nice work :)

Is BPlanets compatible with Habitable Planets and System Redux (which I currently have installed)? If so, I'll definitely give them a whirl...

Re: BPlanets

Posted: Thu Nov 05, 2020 3:12 am
by Commander_X
I don't think it's "compatible".
From what I remember System Redux was used to populate/texture extra planets/moons, and thus it shouldn't interfere.
For Habitable Planets, although not sure (i.e. didn't test), it might just replace the first set of planets that are textured (some hundred or so in Galaxy 1).

Re: BPlanets

Posted: Thu Nov 05, 2020 3:32 am
by Reval
Thanks again. I'll just give it a go, then, and see what can be seen :)

(which is really the whole fun of it anyway).

Re: BPlanets

Posted: Thu Dec 10, 2020 9:34 am
by submersible
I've been reading the default planet shader and it looks like normal maps with cube map is supported. What makes me curious is how you've reproduced the 'hairy ball' tangent space with blender to get these awesome normal maps. I had always assumed that cube map normals would need to be object space or differential to object space.

Code: Select all

        
        /*      Fun sphere facts: the normalized coordinates of a point on a sphere at the origin
                is equal to the object-space normal of the surface at that point.
                Furthermore, we can construct the binormal (a vector pointing westward along the
                surface) as the cross product of the normal with the Y axis. (This produces
                singularities at the pole, but there have to be singularities according to the
                Hairy Ball Theorem.) The tangent (a vector north along the surface) is then the
                inverse of the cross product of the normal and binormal.
        */
#if USE_NORMAL_MAP
#if OOSTD_CUBE_MAP
        vec4 normalMapSample = textureCube(uNormalMap, vCoords);
#else
        vec4 normalMapSample = texture2D(uNormalMap, texCoords);
#endif
I really need to get oolite installed and try them - looks *really* interesting.

Re: BPlanets

Posted: Thu Dec 10, 2020 2:57 pm
by Commander_X
submersible wrote: Thu Dec 10, 2020 9:34 am
I've been reading the default planet shader and it looks like normal maps with cube map is supported. What makes me curious is how you've reproduced the 'hairy ball' tangent space with blender to get these awesome normal maps. I had always assumed that cube map normals would need to be object space or differential to object space.
[...]
It's really all about UV unwrapping. Once the UV map in Blender matches what Oolite expects, any baked texture will match (although, to be honest, I didn't try the equirectangular maps -- I hate with a passion the poles' distorsion -- but they work for another_commander's "<planet_in_Oolite> is <planet_in_Solar_system>" OXPs).
submersible wrote: Thu Dec 10, 2020 9:34 am
[...]
I really need to get oolite installed and try them - looks *really* interesting.
Ouch! :D

If interested, I can send the Blender file I'm trying to munch on for creating these maps. I think that will be the better distribution for this, considering the size of the files for _not-even-half_ of G1.

Re: BPlanets

Posted: Thu Dec 10, 2020 10:36 pm
by submersible
Commander_X wrote: Thu Dec 10, 2020 2:57 pm
If interested, I can send the Blender file I'm trying to munch on for creating these maps. I think that will be the better distribution for this, considering the size of the files for _not-even-half_ of G1.
No rush - same reason I don't have blender installed as oolite, not for work laptops. Povray in a container I can get away with. I will continue to follow this thread with interest.

Re: BPlanets

Posted: Mon Jan 18, 2021 7:44 pm
by Commander_X
Commander_X wrote: Thu Oct 08, 2020 4:17 pm
[...]
Step 2. Let there be map - create/copy/adapt any favorite GLSL noise based sample you consider worthy to replace the new diffuseColor value (and deduce the new normal value from it)
A quick (Oolite in-game) composition to test planet map generation in shaders:
Image

Considering the size of an unfinished G1 (+5G for 235 planets) using Blender, it might make more sense to try to pursue this avenue. There would be two more main goals to make this "official" -- 1 (easy) to bring in some more uniforms from planetinfo.plist (e.g. land_color, land_fraction, random_seed) to help with more variety; 2. (not so easy) to implement heightmap -> normal conversion in the shader.

Lower priority (or not quite so for some :) ): night lights, gas giant variants.

Re: BPlanets

Posted: Wed Jan 27, 2021 1:04 am
by Commander_X
Whew, heightmap -> normalmap finally done! :)

Image

Re: BPlanets

Posted: Wed Jan 27, 2021 1:56 am
by Redspear
Surface looks great but are they clouds?

My usual comment re clouds: more please! :D

Assumptions:
Blue = water = evaporation
Green = flora = transpiration
...and I'm no expert here but...
Crude assessment in presence of both = whacking great cloud layers sweeping AND swirling ominously through the firmament :P

Regardless, that's one cool looking texture 8)

Re: BPlanets

Posted: Wed Jan 27, 2021 2:15 am
by Commander_X
Redspear wrote: Wed Jan 27, 2021 1:56 am
Surface looks great but are they clouds?
[...]
Them clouds are those provided by the OOTB (out of the box) game. :D
Here's a more cloudy example:

Image

These are from my attempt to "move" the planet textures creation in the shader. Even for only the diffuse + spec + normal, I'm not sure what would be the hit for older graphic cards. (Realistic) Clouds would be quite a high call at the moment.

Re: BPlanets

Posted: Wed Jan 27, 2021 4:04 am
by submersible
Commander_X wrote: Wed Jan 27, 2021 2:15 am
These are from my attempt to "move" the planet textures creation in the shader. Even for only the diffuse + spec + normal, I'm not sure what would be the hit for older graphic cards.
Looking good!

Commander_X - are you doing this with code changes or using plists and providing the vertex/fragment shaders?