Page 8 of 11

Re: About planets

Posted: Sat Jun 02, 2012 9:27 am
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. :(

Re: About planets

Posted: Sat Jun 02, 2012 12:01 pm
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.

Re: About planets

Posted: Sat Jun 02, 2012 12:05 pm
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!

Re: About planets

Posted: Sat Jun 02, 2012 12:30 pm
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)

Re: About planets

Posted: Sun Jun 03, 2012 4:54 am
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. ==========

Re: About planets

Posted: Sun Jun 03, 2012 6:35 am
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.

(CALL FOR VOLUNTEERS) Re: Shady planets

Posted: Wed Jul 04, 2012 12:15 pm
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.

Re: About planets

Posted: Wed Jul 04, 2012 12:50 pm
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

Re: About planets

Posted: Wed Jul 04, 2012 5:41 pm
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.

Re: About planets

Posted: Wed Jul 04, 2012 9:14 pm
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!

Re: About planets

Posted: Wed Jul 04, 2012 9:42 pm
by Cody
Griff wrote:
Image
Ahhh... that's beautiful!

Re: About planets

Posted: Wed Jul 04, 2012 10:22 pm
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.

Re: About planets

Posted: Thu Jul 05, 2012 7:23 am
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

Re: About planets

Posted: Thu Jul 05, 2012 8:14 am
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.

Re: About planets

Posted: Thu Jul 05, 2012 1:12 pm
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