//--------------------------------------------------------------- void EffectTextureExporter::exportTexture ( COLLADASW::Texture* colladaTexture, String channelSemantic, const MObject& texture, int blendMode, const String& targetPath ) { mAnimationTargetPath = targetPath; // Set the image name String colladaImageId = exportImage ( texture ); colladaTexture->setImageId ( colladaImageId ); colladaTexture->setTexcoord ( channelSemantic ); // Get the current stream writer COLLADASW::StreamWriter* streamWriter = mDocumentExporter->getStreamWriter(); // Create the sampler String samplerSid = colladaImageId + COLLADASW::Sampler::SAMPLER_SID_SUFFIX; String surfaceSid = colladaImageId + COLLADASW::Sampler::SURFACE_SID_SUFFIX; COLLADASW::Sampler sampler ( COLLADASW::Sampler::SAMPLER_TYPE_2D, samplerSid, surfaceSid ); sampler.setFormat ( FORMAT ); sampler.setImageId ( colladaImageId ); colladaTexture->setSampler ( sampler ); // Add 2D placement parameters add2DPlacement ( colladaTexture, texture ); // Check for 3D projection node MObject colorReceiver = DagHelper::getSourceNodeConnectedTo ( texture, ATTR_OUT_COLOR ); if ( colorReceiver != MObject::kNullObj && colorReceiver.apiType() == MFn::kProjection ) { add3DProjection ( colladaTexture, colorReceiver ); } // Add blend mode information String blendModeString = getBlendMode ( blendMode ); colladaTexture->addExtraTechniqueParameter ( PROFILE_MAYA, MAYA_TEXTURE_BLENDMODE_PARAMETER, blendModeString ); // Wrap elements switch ( colladaTexture->getSampler().getSamplerType() ) { case COLLADASW::Sampler::SAMPLER_TYPE_1D: sampler.setWrapS ( COLLADASW::Sampler::WRAP_MODE_WRAP ); break; case COLLADASW::Sampler::SAMPLER_TYPE_2D: { sampler.setWrapS ( COLLADASW::Sampler::WRAP_MODE_WRAP ); sampler.setWrapT ( COLLADASW::Sampler::WRAP_MODE_WRAP ); } break; case COLLADASW::Sampler::SAMPLER_TYPE_3D: case COLLADASW::Sampler::SAMPLER_TYPE_CUBE: { sampler.setWrapS ( COLLADASW::Sampler::WRAP_MODE_WRAP ); sampler.setWrapT ( COLLADASW::Sampler::WRAP_MODE_WRAP ); sampler.setWrapP ( COLLADASW::Sampler::WRAP_MODE_WRAP ); } break; } sampler.setMinFilter ( COLLADASW::Sampler::SAMPLER_FILTER_NONE ); sampler.setMagFilter ( COLLADASW::Sampler::SAMPLER_FILTER_NONE ); sampler.setMipFilter ( COLLADASW::Sampler::SAMPLER_FILTER_NONE ); }