Join us at the Oolite Anniversary Party -- London, 7th July 2024, 1pm
More details in this thread.

About planets

An area for discussing new ideas and additions to Oolite.

Moderators: winston, another_commander

User avatar
Eric Walch
Slightly Grand Rear Admiral
Slightly Grand Rear Admiral
Posts: 5536
Joined: Sat Jun 16, 2007 3:48 pm
Location: Netherlands

Re: About planets

Post by Eric Walch »

submersible wrote:
For anyone building from branches/shady-planets , please see http://swarm.perlide.org/static/shady-p ... st.oxp.zip an AddOn which adds planet and atmosphere shaders to Lave and a few nearby planets.
I noticed a few problems on the mac. The branch was split off just before a mac compiler error was fixed. Fixed here also, so it should now compile well Mac OSX Lion. (For Snow Leopard you must do the same adjustments on the project file as for trunk to compile it).

The oxp has syntax errors in the planetInfo.plist. Almost two dozens of missing semicolons after record items. In most (all?) cases the missing semicolon is followed by a } and thereby a bit masking the problem. But, also this is a mac-only problem as windows ignores this syntax error.

Haven't looked at the planets itself yet. :(
User avatar
Gimi
---- E L I T E ----
---- E L I T E ----
Posts: 2073
Joined: Tue Aug 29, 2006 5:02 pm
Location: Norway

Re: About planets

Post by Gimi »

submersible wrote:
Bravely running away - now has a sunset.
For anyone building from branches/shady-planets , please see http://swarm.perlide.org/static/shady-p ... st.oxp.zip an AddOn which adds planet and atmosphere shaders to Lave and a few nearby planets.
Impressed. Looking forward to see it fully implemented.
Now, what about the sun. Any chance of that receiving the same/similar treatment. Somewhat more problematic from what I understand.
"A brilliant game of blasting and trading... Truly a mega-game... The game of a lifetime."
(Gold Medal Award, Zzap!64 May 1985).
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16073
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: About planets

Post by Cody »

Gimi wrote:
Now, what about the sun. Any chance of that receiving the same/similar treatment. Somewhat more problematic from what I understand.
<sniggers> It'd be really cool if that was do-able!
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
cim
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 4072
Joined: Fri Nov 11, 2011 6:19 pm

Re: About planets

Post by cim »

Gimi wrote:
Now, what about the sun. Any chance of that receiving the same/similar treatment. Somewhat more problematic from what I understand.
The problem is that a sphere that large would require a huge number of polygons to properly approximate - a full detail planet is already 20000 polygons, and you can still see the corners if you get close - so it's currently an "impostor" (technical term) - a flat sheet that's textured to look like a sphere.

Texturing an impostor sphere so that it looks like a textured (and shadered) real sphere isn't totally impossible, but it's really tricky. (Of course, if anyone happens to have a suitable implementation, it'd probably be really useful for planets too - I had a brief look around before submersible took on new planets and couldn't find anything suitable, though)
User avatar
Capt. Murphy
Commodore
Commodore
Posts: 1127
Joined: Fri Feb 25, 2011 8:46 am
Location: UK South Coast.

Re: About planets

Post by Capt. Murphy »

submersible wrote:
Bravely running away - now has a sunset.
http://swarm.perlide.org/static/new_pla ... te-165.png

For anyone building from branches/shady-planets , please see http://swarm.perlide.org/static/shady-p ... st.oxp.zip an AddOn which adds planet and atmosphere shaders to Lave and a few nearby planets.
Hi submersible - I've just compiled from the branch and tried the OXP. Shader build errors and no pretty planets on my hardware... :(
05:48:05.264 [log.header]: Opening log for Oolite development version 1.77.0.4978 (x86-32 test release) under Windows at 2012-06-03 05:48:05 +0100.
4 processors detected.
Build options: new planets, spoken messages, mass/fuel pricing, JavaScript console support, OXP verifier, localization tools, debug GraphViz support, JavaScript profiling.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

05:48:05.448 [display.mode.list.native]: Windows native resolution detected: 1366 x 768
05:48:05.812 [joystick.init]: Number of joysticks detected: 0
05:48:05.932 [dataCache.rebuild.pathsChanged]: Cache is stale (search paths have changed). Rebuilding from scratch.
05:48:05.932 [rendering.opengl.version]: OpenGL renderer version: 3.1.0 ("3.1.0 - Build 8.15.10.2696"). Vendor: "Intel". Renderer: "Intel(R) HD Graphics 3000".
05:48:05.932 [rendering.opengl.extensions]: OpenGL extensions (114):
GL_NV_primitive_restart, GL_ARB_texture_env_crossbar, GL_EXT_abgr, GL_ARB_shadow, GL_IBM_texture_mirrored_repeat, GL_EXT_separate_specular_color, GL_EXT_texture_edge_clamp, GL_EXT_blend_minmax, GL_EXT_draw_buffers2, GL_ARB_texture_env_add, GL_ARB_draw_elements_base_vertex, GL_ARB_sampler_objects, GL_EXT_framebuffer_blit, GL_EXT_transform_feedback, GL_ARB_texture_env_dot3, GL_ARB_texture_query_lod, GL_EXT_framebuffer_object, GL_EXT_blend_subtract, GL_3DFX_texture_compression_FXT1, GL_NV_conditional_render, GL_ARB_vertex_array_bgra, GL_EXT_texture_snorm, GL_ARB_multitexture, GL_EXT_stencil_wrap, GL_ARB_texture_border_clamp, GL_ARB_framebuffer_sRGB, GL_ARB_texture_env_combine, GL_EXT_framebuffer_multisample, GL_EXT_texture_env_add, GL_EXT_packed_pixels, GL_SGIS_texture_edge_clamp, GL_ARB_depth_clamp, GL_INTEL_performance_queries, GL_ARB_uniform_buffer_object, GL_ARB_depth_texture, GL_SGIS_texture_lod, GL_ARB_occlusion_query, GL_ARB_transpose_matrix, GL_NV_texgen_reflection, GL_EXT_stencil_two_side, GL_ARB_seamless_cube_map, GL_ARB_fragment_program_shadow, GL_ARB_shading_language_100, GL_ARB_texture_compression_rgtc, GL_EXT_gpu_program_parameters, GL_EXT_texture_shared_exponent, GL_EXT_rescale_normal, GL_ARB_map_buffer_range, GL_ARB_provoking_vertex, GL_ARB_explicit_attrib_location, GL_ARB_pixel_buffer_object, GL_EXT_secondary_color, GL_ARB_copy_buffer, GL_ARB_half_float_pixel, GL_EXT_blend_equation_separate, GL_EXT_draw_range_elements, GL_ARB_instanced_arrays, GL_EXT_texture_lod_bias, GL_EXT_texture_filter_anisotropic, GL_ARB_half_float_vertex, GL_EXT_texture_swizzle, GL_SGIS_generate_mipmap, GL_ARB_timer_query, GL_ARB_texture_rectangle, GL_ARB_texture_non_power_of_two, GL_ARB_point_sprite, GL_EXT_packed_depth_stencil, GL_ARB_vertex_shader, GL_EXT_texture_compression_s3tc, GL_EXT_texture_integer, GL_ARB_depth_buffer_float, GL_ARB_sync, GL_ARB_draw_instanced, GL_ARB_vertex_buffer_object, GL_WIN_swap_hint, GL_ARB_color_buffer_float, GL_ARB_shader_objects, GL_ARB_texture_rgb10_a2ui, GL_EXT_texture_array, GL_ATI_separate_stencil, GL_ARB_framebuffer_object, GL_EXT_packed_float, GL_ARB_compatibility, GL_EXT_texture_rectangle, GL_ARB_texture_rg, GL_ARB_occlusion_query2, GL_ARB_fragment_shader, GL_EXT_fog_coord, GL_EXT_texture3D, GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_texture_buffer_object_rgb32, GL_ARB_window_pos, GL_ARB_fragment_program, GL_ARB_vertex_program, GL_EXT_texture_env_combine, GL_ARB_point_parameters, GL_ARB_texture_cube_map, GL_EXT_bgra, GL_EXT_compiled_vertex_array, GL_ARB_multisample, GL_ARB_vertex_array_object, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, GL_ARB_texture_compression, GL_EXT_multi_draw_arrays, GL_ARB_fragment_coord_conventions, GL_ARB_texture_float, GL_EXT_blend_func_separate, GL_EXT_texture_sRGB, GL_EXT_shadow_funcs, GL_ARB_shader_bit_encoding, GL_EXT_clip_volume_hint, GL_EXT_blend_color, GL_NV_blend_square
05:48:05.939 [rendering.opengl.shader.support]: Shaders are supported.
05:48:05.939 [speech.synthesis]: Spoken messages are off.
05:48:06.046 [dataCache.rebuild.pathsChanged]: Cache is stale (search paths have changed). Rebuilding from scratch.
05:48:06.047 [searchPaths.dumpAll]: Unrestricted mode - resource paths:
Resources
../AddOns
../AddOns/Basic-debug.oxp
../AddOns/Colonial Viper Mark 1.oxp
../AddOns/Far_Arm_ships_v2.0.oxp
../AddOns/griff_boa_prototype_normalmapped.oxp
../AddOns/Griff_Shipset_Addition_v1.0.oxp
../AddOns/Griff_Shipset_Resources_v1.2.22.oxp
../AddOns/King Cobra.oxp
../AddOns/neocaduceus.oxp
../AddOns/shady-planets-test.oxp
../AddOns/Vortex 1.24.oxp
../AddOns/WildShips 1.03.oxp
../AddOns/YOUR_AD_HERE_4.17.oxp
../AddOns/YOUR_AD_HERE_set_A_4.17.oxp
../AddOns/YOUR_AD_HERE_set_B_4.17.oxp
../AddOns/YOUR_AD_HERE_set_C_4.17.oxp
../AddOns/YOUR_AD_HERE_set_D_4.17.oxp
../AddOns/YOUR_AD_HERE_set_E_4.17.oxp
../AddOns/YOUR_AD_HERE_set_F_4.17.oxp
../AddOns/YOUR_AD_HERE_set_G_4.17.oxp
05:48:06.131 [shipData.load.begin]: Loading ship data.
05:48:06.807 [script.load.world.listAll]: Loaded 11 world scripts:
Caduceus Damage Control Node 2.0
Manchi Populator 2.0
oolite-cloaking-device 1.77
oolite-constrictor-hunt 1.77
oolite-nova 1.77
oolite-thargoid-plans 1.77
oolite-trumbles 1.77
Pi-Forty-Two Con stores 4.1.7
vortex_maelstrom.js 1.23
vortex_player.js 1.23
wildShips_populator.js 1.02
05:48:07.145 [planetTex.temp]: Started generator <OOPlanetTextureGenerator 0xb87e140>{seed: 3560527675,2338263651 land: 0.65}
05:48:07.160 [submersible]: shaders on material=<OOShaderMaterial 0xc94f600>{"dynamic"}
05:48:07.160 [submersible]: final _planetDrawable material is <OOShaderMaterial 0xc94f600>{"dynamic"}
05:48:07.163 [shader.compile.failure]: ***** ERROR: GLSL fragment shader compilation failed for atmos.fragment:
>>>>> GLSL log:
ERROR: 1:86: 'assign' : l-value required "vColor" (can't modify a varying)
WARNING: 1:127: 'assing' : implict conversion between types allowed from GLSL 1.20
WARNING: 1:127: 'assing' : implict conversion between types allowed from GLSL 1.20
WARNING: 1:127: 'smoothstep' : implicit conversion is allowed from GLSL 1.20
WARNING: 1:127: 'assign' : implict conversion between types allowed from GLSL 1.20
WARNING: 1:137: 'assing' : implict conversion between types allowed from GLSL 1.20
ERROR: 1:137: '=' : cannot convert from '4-component vector of float' to '3-component vector of float'
WARNING: 1:138: 'assing' : implict conversion between types allowed from GLSL 1.20
ERROR: 1:138: '=' : cannot convert from '4-component vector of float' to '3-component vector of float'
ERROR: 1:139: 'assign' : l-value required "vColor" (can't modify a varying)
ERROR: 1:141: 'assign' : l-value required "vColor" (can't modify a varying)
ERROR: 1:146: 'assign' : l-value required "vColor" (can't modify a varying)
WARNING: 1:147: 'assing' : implict conversion between types allowed from GLSL 1.20
ERROR: 1:147: 'assign' : l-value required "vColor" (can't modify a varying)
05:48:07.163 [shader.load.fullModeFailed]: ----- WARNING: Could not build shader atmos.vertex/atmos.fragment in full complexity mode, trying simple mode.
05:48:07.165 [shader.compile.failure]: ***** ERROR: GLSL fragment shader compilation failed for atmos.fragment:
>>>>> GLSL log:
ERROR: 1:86: 'assign' : l-value required "vColor" (can't modify a varying)
WARNING: 1:127: 'assing' : implict conversion between types allowed from GLSL 1.20
WARNING: 1:127: 'assing' : implict conversion between types allowed from GLSL 1.20
WARNING: 1:127: 'smoothstep' : implicit conversion is allowed from GLSL 1.20
WARNING: 1:127: 'assign' : implict conversion between types allowed from GLSL 1.20
WARNING: 1:137: 'assing' : implict conversion between types allowed from GLSL 1.20
ERROR: 1:137: '=' : cannot convert from '4-component vector of float' to '3-component vector of float'
WARNING: 1:138: 'assing' : implict conversion between types allowed from GLSL 1.20
ERROR: 1:138: '=' : cannot convert from '4-component vector of float' to '3-component vector of float'
ERROR: 1:139: 'assign' : l-value required "vColor" (can't modify a varying)
ERROR: 1:141: 'assign' : l-value required "vColor" (can't modify a varying)
ERROR: 1:146: 'assign' : l-value required "vColor" (can't modify a varying)
WARNING: 1:147: 'assing' : implict conversion between types allowed from GLSL 1.20
ERROR: 1:147: 'assign' : l-value required "vColor" (can't modify a varying)
05:48:07.166 [shader.load.failed]: ***** ERROR: Could not build shader atmos.vertex/atmos.fragment.
05:48:07.173 [files.notFound]: ----- WARNING: Could not find texture file "planet_halo7".
05:48:07.173 [submersible]: ATMOS textureName=planet_halo7 , Material <OOShaderMaterial 0xc94ea30>{"planet_halo7"}
05:48:07.366 [planetTex.temp]: Completed generator <OOPlanetTextureGenerator 0xb87e140>{seed: 3560527675,2338263651 land: 0.65} successfully
05:48:08.747 [loading.complete]: ========== Loading complete. ==========
[EliteWiki] Capt. Murphy's OXPs
External JavaScript resources - W3Schools & Mozilla Developer Network
Win 7 64bit, Intel Core i5 with HD3000 (driver rev. 8.15.10.2696 - March 2012), Oolite 1.76.1
User avatar
submersible
Commodore
Commodore
Posts: 264
Joined: Thu Nov 10, 2011 7:49 am

Re: About planets

Post by submersible »

Capt. Murphy wrote:
Hi submersible - I've just compiled from the branch and tried the OXP. Shader build errors and no pretty planets on my hardware... :(
Thanks - I will take another look at those and update the OXP. Looks like my hardware is rather too forgiving of my newb mistakes.
User avatar
submersible
Commodore
Commodore
Posts: 264
Joined: Thu Nov 10, 2011 7:49 am

(CALL FOR VOLUNTEERS) Re: Shady planets

Post by submersible »

Whilst I am still working on a branch for shady planets, can I please call for volunteers to help with writing shaders for planets.

shady-planets allows planetinfo.plist to describe a 'shaders' dictionary (similar to a ship model) for a planet to alter the material used for the planet texture and the atmosphere texture. For example;

Code: Select all

"0 47" = {
  texture = "funky_shader_fallback.png"; // A regular texture to fall back to with default planet texturing
  atmosphere_texture = "funky_shader_atmos_fallback.png"; // As above
  shaders = {
    "funky_shader_fallback.png" = {
       vertex_shader = "my_planet.vertex";
       fragment_shader = "my_planet.fragment";
     };
    "funky_shader_atmos_fallback.png" = {
      vertex_shader = "my_atmos.vertex";
      fragment_shader = "my_atmost.fragment";
    };
  };
};
Anyone with an interest in OXP support for adding shaders to planets or shader writing skills please reply with your suggestions. I'm also very curious about feedback regarding NEW_ATMOSPHERE.

I hope to update the testing OXP soon with adjustments to my own shaders and contributions from others.

Thank you.
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2479
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Re: About planets

Post by Griff »

I'd love to help but i don't think i've got the brains to be able to write a shader from scratch. I'd be happy to muck about with any shader code you do have already written though to see if there's any interesting stuff i can come up with :D
User avatar
Thargoid
Thargoid
Thargoid
Posts: 5525
Joined: Thu Jun 12, 2008 6:55 pm

Re: About planets

Post by Thargoid »

Depending on how things are set up, you could perhaps use a sinusoidal multiplier onto an illumination-type map to make "city lights" type spiderweb glows appear on the dark side of the planet? Thus they would fade out somewhere around the terminator and not appear on the light side.

I know it might be pushing it a bit to have them visible from space, but could look cool.
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2479
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Re: About planets

Post by Griff »

Wow, Submersible, this stuff is incredible! i don't want to spoiler stuff for others, but the shader effects on Diso :wub:
and this one you've already previewed... Image
...but i had no idea that the atmosphere was a foggy layer above the planet surface! i just thought it was a cool shading trick on the actual planet polygons!
@Thargoid, this planet (the one in the screen shot above) does indeed have glowing city lights on the dark side!
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16073
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: About planets

Post by Cody »

Griff wrote:
Image
Ahhh... that's beautiful!
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
submersible
Commodore
Commodore
Posts: 264
Joined: Thu Nov 10, 2011 7:49 am

Re: About planets

Post by submersible »

Thargoid wrote:
Depending on how things are set up, you could perhaps use a sinusoidal multiplier onto an illumination-type map to make "city lights" type spiderweb glows appear on the dark side of the planet? Thus they would fade out somewhere around the terminator and not appear on the light side.

I know it might be pushing it a bit to have them visible from space, but could look cool.
:) Such a good idea - it's already done! And it does look rather cool. Both griff's contributed Earth shader and my working but hacked together cube map shader support a city lights illumination map which disappears gradually at the terminator.
User avatar
Griff
Oolite 2 Art Director
Oolite 2 Art Director
Posts: 2479
Joined: Fri Jul 14, 2006 12:29 pm
Location: Probably hugging his Air Fryer

Re: About planets

Post by Griff »

this is wonderful stuff, i didn't realise you'd written it so that things like the earth shader would work, i might squish Ahruman's 'freaky thargoid running lights' shader into it and see if it can be used to make animated rivers of lava or something for a 'rock and lava planet'. i do also have some early attempts at an 'ice asteroid' shader that might also make a neat ice planet - i'm struggling with the random 'sparkle effect' on that though but i might as well post it up in case there's anyone else who can take it further
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Re: About planets

Post by JensAyton »

Griff wrote:
i might squish Ahruman's aegidian’s 'freaky thargoid running lights' shader into it and see if it can be used to make animated rivers of lava or something
FTFY.
User avatar
submersible
Commodore
Commodore
Posts: 264
Joined: Thu Nov 10, 2011 7:49 am

Re: About planets

Post by submersible »

Some moving examples of shady planets. Exciting for the slartibartfast set.

http://youtu.be/2hYUfZMbgn0

http://youtu.be/8rNV8zk-xLE

http://youtu.be/jGpeU1UbleA
Post Reply