From: <tz...@us...> - 2009-02-26 04:58:09
|
Revision: 2889 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=2889&view=rev Author: tzlaine Date: 2009-02-26 04:58:04 +0000 (Thu, 26 Feb 2009) Log Message: ----------- Implemented the PagedGeometry fade effect in asteroid.vert/asteroid.frag, and tweaked the BatchPage and ImpostorPage parameters for a slightly better effect. Modified Paths: -------------- trunk/FreeOrion/UI/CombatWnd.cpp trunk/FreeOrion/default/data/art/combat/meshes/planets/asteroid.frag trunk/FreeOrion/default/data/art/combat/meshes/planets/asteroid.vert Modified: trunk/FreeOrion/UI/CombatWnd.cpp =================================================================== --- trunk/FreeOrion/UI/CombatWnd.cpp 2009-02-26 04:39:19 UTC (rev 2888) +++ trunk/FreeOrion/UI/CombatWnd.cpp 2009-02-26 04:58:04 UTC (rev 2889) @@ -411,9 +411,10 @@ paged_geometry->setCamera(camera); paged_geometry->setPageSize(250); paged_geometry->setInfinite(); - paged_geometry->addDetailLevel<Forests::BatchPage>(150, 50); + paged_geometry->addDetailLevel<Forests::BatchPage>(250, 50); paged_geometry->addDetailLevel<Forests::ImpostorPage>( - 3.0 * SystemRadius(), 0, Ogre::Any(PAGED_GEOMETRY_IMPOSTOR_QUEUE)); + 2.0 * SystemRadius(), 1.5 * SystemRadius(), + Ogre::Any(PAGED_GEOMETRY_IMPOSTOR_QUEUE)); paged_geometry_loader = new Forests::TreeLoader3D( paged_geometry, Modified: trunk/FreeOrion/default/data/art/combat/meshes/planets/asteroid.frag =================================================================== --- trunk/FreeOrion/default/data/art/combat/meshes/planets/asteroid.frag 2009-02-26 04:39:19 UTC (rev 2888) +++ trunk/FreeOrion/default/data/art/combat/meshes/planets/asteroid.frag 2009-02-26 04:58:04 UTC (rev 2889) @@ -2,6 +2,7 @@ uniform sampler2D color_texture, normal_texture; varying float diffuse; +varying float alpha; varying vec2 tex_coord; varying vec3 light_vec; @@ -16,5 +17,5 @@ float normal_factor = abs(dot(normal, light_vec)); color *= normal_factor; - gl_FragColor = vec4(color, 1.0); + gl_FragColor = vec4(color, alpha); } Modified: trunk/FreeOrion/default/data/art/combat/meshes/planets/asteroid.vert =================================================================== --- trunk/FreeOrion/default/data/art/combat/meshes/planets/asteroid.vert 2009-02-26 04:39:19 UTC (rev 2888) +++ trunk/FreeOrion/default/data/art/combat/meshes/planets/asteroid.vert 2009-02-26 04:58:04 UTC (rev 2889) @@ -1,12 +1,13 @@ // -*- C++ -*- varying float diffuse; +varying float alpha; varying vec2 tex_coord; varying vec3 light_vec; +// We don't use some of these, but PagedGeometry expects this interface. uniform vec4 objSpaceLight; uniform vec4 lightDiffuse; uniform vec4 lightAmbient; - uniform mat4 worldViewProj; uniform vec3 camPos; uniform float invisibleDist; @@ -23,5 +24,8 @@ mat3 tangent_space = mat3(tangent, binormal, gl_Normal); light_vec = normalize(light_dir * tangent_space); + float dist = distance(camPos.xz, gl_Vertex.xz); + alpha = (invisibleDist - dist) / fadeGap; + gl_Position = ftransform(); } |