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/TexEnvCombine>
|
||||
#include <osg/Texture2D>
|
||||
#include <osg/TextureCubeMap>
|
||||
#include <osg/TexMat>
|
||||
#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_states2[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
|
||||
static osg::ref_ptr<osg::TextureCubeMap> cubeMap;
|
||||
static bool state_initialized = false;
|
||||
|
||||
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->setAttributeAndModes(attribFactory->getStandardAlphaFunc());
|
||||
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);
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
@ -367,126 +342,6 @@ SGCloudLayer::rebuild()
|
||||
|
||||
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;
|
||||
state = SGMakeState(texture_path, "overcast.png", "overcast_n.png");
|
||||
layer_states[SG_CLOUD_OVERCAST] = state;
|
||||
|
Loading…
Reference in New Issue
Block a user