Remove unused cube-map from 2D clouds.
This commit is contained in:
parent
18ff03acdf
commit
4ea8e4774e
@ -40,7 +40,6 @@
|
|||||||
#include <osg/TexEnv>
|
#include <osg/TexEnv>
|
||||||
#include <osg/TexEnvCombine>
|
#include <osg/TexEnvCombine>
|
||||||
#include <osg/Texture2D>
|
#include <osg/Texture2D>
|
||||||
#include <osg/TextureCubeMap>
|
|
||||||
#include <osg/TexMat>
|
#include <osg/TexMat>
|
||||||
#include <osg/Fog>
|
#include <osg/Fog>
|
||||||
|
|
||||||
@ -62,7 +61,6 @@ using namespace osg;
|
|||||||
|
|
||||||
static osg::ref_ptr<osg::StateSet> layer_states[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
|
static osg::ref_ptr<osg::StateSet> layer_states[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
|
||||||
static osg::ref_ptr<osg::StateSet> layer_states2[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
|
static osg::ref_ptr<osg::StateSet> layer_states2[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
|
||||||
static osg::ref_ptr<osg::TextureCubeMap> cubeMap;
|
|
||||||
static bool state_initialized = false;
|
static bool state_initialized = false;
|
||||||
|
|
||||||
const std::string SGCloudLayer::SG_CLOUD_OVERCAST_STRING = "overcast";
|
const std::string SGCloudLayer::SG_CLOUD_OVERCAST_STRING = "overcast";
|
||||||
@ -89,31 +87,8 @@ SGMakeState(const SGPath &path, const char* colorTexture,
|
|||||||
stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
|
stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
|
||||||
stateSet->setAttributeAndModes(attribFactory->getStandardAlphaFunc());
|
stateSet->setAttributeAndModes(attribFactory->getStandardAlphaFunc());
|
||||||
stateSet->setAttributeAndModes(attribFactory->getStandardBlendFunc());
|
stateSet->setAttributeAndModes(attribFactory->getStandardBlendFunc());
|
||||||
|
|
||||||
// osg::Material* material = new osg::Material;
|
|
||||||
// material->setColorMode(osg::Material::AMBIENT_AND_DIFFUSE);
|
|
||||||
// material->setEmission(osg::Material::FRONT_AND_BACK,
|
|
||||||
// osg::Vec4(0.05, 0.05, 0.05, 0));
|
|
||||||
// material->setSpecular(osg::Material::FRONT_AND_BACK,
|
|
||||||
// osg::Vec4(0, 0, 0, 1));
|
|
||||||
// stateSet->setAttribute(material);
|
|
||||||
|
|
||||||
stateSet->setMode(GL_FOG, osg::StateAttribute::OFF);
|
stateSet->setMode(GL_FOG, osg::StateAttribute::OFF);
|
||||||
|
|
||||||
// OSGFIXME: invented by me ...
|
|
||||||
// stateSet->setMode(GL_DEPTH_TEST, osg::StateAttribute::OFF);
|
|
||||||
// stateSet->setMode(GL_LIGHTING, osg::StateAttribute::ON);
|
|
||||||
|
|
||||||
// stateSet->setMode(GL_LIGHT0, osg::StateAttribute::OFF);
|
|
||||||
|
|
||||||
// If the normal texture is given prepare a bumpmapping enabled state
|
|
||||||
// if (normalTexture) {
|
|
||||||
// SGPath normalPath(path);
|
|
||||||
// normalPath.append(normalTexture);
|
|
||||||
// stateSet->setTextureAttribute(2, SGLoadTexture2D(normalPath));
|
|
||||||
// stateSet->setTextureMode(2, GL_TEXTURE_2D, osg::StateAttribute::ON);
|
|
||||||
// }
|
|
||||||
|
|
||||||
return stateSet;
|
return stateSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -367,126 +342,6 @@ SGCloudLayer::rebuild()
|
|||||||
|
|
||||||
SG_LOG(SG_ASTRO, SG_INFO, "initializing cloud layers");
|
SG_LOG(SG_ASTRO, SG_INFO, "initializing cloud layers");
|
||||||
|
|
||||||
// This bump mapping code was inspired by the tutorial available at
|
|
||||||
// http://www.paulsprojects.net/tutorials/simplebump/simplebump.html
|
|
||||||
// and a NVidia white paper
|
|
||||||
// http://developer.nvidia.com/object/bumpmappingwithregistercombiners.html
|
|
||||||
// The normal map textures were generated by the normal map Gimp plugin :
|
|
||||||
// http://nifelheim.dyndns.org/~cocidius/normalmap/
|
|
||||||
//
|
|
||||||
cubeMap = new osg::TextureCubeMap;
|
|
||||||
cubeMap->setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR);
|
|
||||||
cubeMap->setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR);
|
|
||||||
cubeMap->setWrap(osg::Texture::WRAP_S, osg::Texture::CLAMP_TO_EDGE);
|
|
||||||
cubeMap->setWrap(osg::Texture::WRAP_T, osg::Texture::CLAMP_TO_EDGE);
|
|
||||||
cubeMap->setWrap(osg::Texture::WRAP_R, osg::Texture::CLAMP_TO_EDGE);
|
|
||||||
|
|
||||||
const int size = 32;
|
|
||||||
const float half_size = 16.0f;
|
|
||||||
const float offset = 0.5f;
|
|
||||||
osg::Vec3 zero_normal(0.5, 0.5, 0.5);
|
|
||||||
|
|
||||||
osg::Image* image = new osg::Image;
|
|
||||||
image->allocateImage(size, size, 1, GL_RGB, GL_UNSIGNED_BYTE);
|
|
||||||
unsigned char *ptr = image->data(0, 0);
|
|
||||||
for (int j = 0; j < size; j++ ) {
|
|
||||||
for (int i = 0; i < size; i++ ) {
|
|
||||||
osg::Vec3 tmp(half_size, -( j + offset - half_size ),
|
|
||||||
-( i + offset - half_size ) );
|
|
||||||
tmp.normalize();
|
|
||||||
tmp = tmp*0.5 - zero_normal;
|
|
||||||
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 0 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 1 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 2 ] * 255 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cubeMap->setImage(osg::TextureCubeMap::POSITIVE_X, image);
|
|
||||||
|
|
||||||
image = new osg::Image;
|
|
||||||
image->allocateImage(size, size, 1, GL_RGB, GL_UNSIGNED_BYTE);
|
|
||||||
ptr = image->data(0, 0);
|
|
||||||
for (int j = 0; j < size; j++ ) {
|
|
||||||
for (int i = 0; i < size; i++ ) {
|
|
||||||
osg::Vec3 tmp(-half_size, -( j + offset - half_size ),
|
|
||||||
( i + offset - half_size ) );
|
|
||||||
tmp.normalize();
|
|
||||||
tmp = tmp*0.5 - zero_normal;
|
|
||||||
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 0 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 1 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 2 ] * 255 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cubeMap->setImage(osg::TextureCubeMap::NEGATIVE_X, image);
|
|
||||||
|
|
||||||
image = new osg::Image;
|
|
||||||
image->allocateImage(size, size, 1, GL_RGB, GL_UNSIGNED_BYTE);
|
|
||||||
ptr = image->data(0, 0);
|
|
||||||
for (int j = 0; j < size; j++ ) {
|
|
||||||
for (int i = 0; i < size; i++ ) {
|
|
||||||
osg::Vec3 tmp(( i + offset - half_size ), half_size,
|
|
||||||
( j + offset - half_size ) );
|
|
||||||
tmp.normalize();
|
|
||||||
tmp = tmp*0.5 - zero_normal;
|
|
||||||
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 0 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 1 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 2 ] * 255 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cubeMap->setImage(osg::TextureCubeMap::POSITIVE_Y, image);
|
|
||||||
|
|
||||||
image = new osg::Image;
|
|
||||||
image->allocateImage(size, size, 1, GL_RGB, GL_UNSIGNED_BYTE);
|
|
||||||
ptr = image->data(0, 0);
|
|
||||||
for (int j = 0; j < size; j++ ) {
|
|
||||||
for (int i = 0; i < size; i++ ) {
|
|
||||||
osg::Vec3 tmp(( i + offset - half_size ), -half_size,
|
|
||||||
-( j + offset - half_size ) );
|
|
||||||
tmp.normalize();
|
|
||||||
tmp = tmp*0.5 - zero_normal;
|
|
||||||
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 0 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 1 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 2 ] * 255 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cubeMap->setImage(osg::TextureCubeMap::NEGATIVE_Y, image);
|
|
||||||
|
|
||||||
image = new osg::Image;
|
|
||||||
image->allocateImage(size, size, 1, GL_RGB, GL_UNSIGNED_BYTE);
|
|
||||||
ptr = image->data(0, 0);
|
|
||||||
for (int j = 0; j < size; j++ ) {
|
|
||||||
for (int i = 0; i < size; i++ ) {
|
|
||||||
osg::Vec3 tmp(( i + offset - half_size ),
|
|
||||||
-( j + offset - half_size ), half_size );
|
|
||||||
tmp.normalize();
|
|
||||||
tmp = tmp*0.5 - zero_normal;
|
|
||||||
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 0 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 1 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 2 ] * 255 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cubeMap->setImage(osg::TextureCubeMap::POSITIVE_Z, image);
|
|
||||||
|
|
||||||
image = new osg::Image;
|
|
||||||
image->allocateImage(size, size, 1, GL_RGB, GL_UNSIGNED_BYTE);
|
|
||||||
ptr = image->data(0, 0);
|
|
||||||
for (int j = 0; j < size; j++ ) {
|
|
||||||
for (int i = 0; i < size; i++ ) {
|
|
||||||
osg::Vec3 tmp(-( i + offset - half_size ),
|
|
||||||
-( j + offset - half_size ), -half_size );
|
|
||||||
tmp.normalize();
|
|
||||||
tmp = tmp*0.5 - zero_normal;
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 0 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 1 ] * 255 );
|
|
||||||
*ptr++ = (unsigned char)( tmp[ 2 ] * 255 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cubeMap->setImage(osg::TextureCubeMap::NEGATIVE_Z, image);
|
|
||||||
|
|
||||||
osg::StateSet* state;
|
osg::StateSet* state;
|
||||||
state = SGMakeState(texture_path, "overcast.png", "overcast_n.png");
|
state = SGMakeState(texture_path, "overcast.png", "overcast_n.png");
|
||||||
layer_states[SG_CLOUD_OVERCAST] = state;
|
layer_states[SG_CLOUD_OVERCAST] = state;
|
||||||
|
Loading…
Reference in New Issue
Block a user