KRMaterial now using KRTextureBinding
This commit is contained in:
@@ -43,24 +43,12 @@ using namespace hydra;
|
|||||||
KRMaterial::KRMaterial(KRContext& context, const char* szName) : KRResource(context, szName)
|
KRMaterial::KRMaterial(KRContext& context, const char* szName) : KRResource(context, szName)
|
||||||
{
|
{
|
||||||
m_name = szName;
|
m_name = szName;
|
||||||
m_pAmbientMap = NULL;
|
|
||||||
m_pDiffuseMap = NULL;
|
|
||||||
m_pSpecularMap = NULL;
|
|
||||||
m_pNormalMap = NULL;
|
|
||||||
m_pReflectionMap = NULL;
|
|
||||||
m_pReflectionCube = NULL;
|
|
||||||
m_ambientColor = Vector3::Zero();
|
m_ambientColor = Vector3::Zero();
|
||||||
m_diffuseColor = Vector3::One();
|
m_diffuseColor = Vector3::One();
|
||||||
m_specularColor = Vector3::One();
|
m_specularColor = Vector3::One();
|
||||||
m_reflectionColor = Vector3::Zero();
|
m_reflectionColor = Vector3::Zero();
|
||||||
m_tr = 1.0f;
|
m_tr = 1.0f;
|
||||||
m_ns = 0.0f;
|
m_ns = 0.0f;
|
||||||
m_ambientMap = "";
|
|
||||||
m_diffuseMap = "";
|
|
||||||
m_specularMap = "";
|
|
||||||
m_normalMap = "";
|
|
||||||
m_reflectionMap = "";
|
|
||||||
m_reflectionCube = "";
|
|
||||||
m_ambientMapOffset = Vector2::Create(0.0f, 0.0f);
|
m_ambientMapOffset = Vector2::Create(0.0f, 0.0f);
|
||||||
m_specularMapOffset = Vector2::Create(0.0f, 0.0f);
|
m_specularMapOffset = Vector2::Create(0.0f, 0.0f);
|
||||||
m_diffuseMapOffset = Vector2::Create(0.0f, 0.0f);
|
m_diffuseMapOffset = Vector2::Create(0.0f, 0.0f);
|
||||||
@@ -84,7 +72,7 @@ std::string KRMaterial::getExtension()
|
|||||||
|
|
||||||
bool KRMaterial::needsVertexTangents()
|
bool KRMaterial::needsVertexTangents()
|
||||||
{
|
{
|
||||||
return m_normalMap.size() > 0;
|
return m_normalMap.isSet();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KRMaterial::save(Block& data)
|
bool KRMaterial::save(Block& data)
|
||||||
@@ -100,33 +88,33 @@ bool KRMaterial::save(Block& data)
|
|||||||
stream << "\nkr " << m_reflectionColor.x << " " << m_reflectionColor.y << " " << m_reflectionColor.z;
|
stream << "\nkr " << m_reflectionColor.x << " " << m_reflectionColor.y << " " << m_reflectionColor.z;
|
||||||
stream << "\nTr " << m_tr;
|
stream << "\nTr " << m_tr;
|
||||||
stream << "\nNs " << m_ns;
|
stream << "\nNs " << m_ns;
|
||||||
if (m_ambientMap.size()) {
|
if (m_ambientMap.isSet()) {
|
||||||
stream << "\nmap_Ka " << m_ambientMap << ".pvr -s " << m_ambientMapScale.x << " " << m_ambientMapScale.y << " -o " << m_ambientMapOffset.x << " " << m_ambientMapOffset.y;
|
stream << "\nmap_Ka " << m_ambientMap.getName() << ".pvr -s " << m_ambientMapScale.x << " " << m_ambientMapScale.y << " -o " << m_ambientMapOffset.x << " " << m_ambientMapOffset.y;
|
||||||
} else {
|
} else {
|
||||||
stream << "\n# map_Ka filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
stream << "\n# map_Ka filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
||||||
}
|
}
|
||||||
if (m_diffuseMap.size()) {
|
if (m_diffuseMap.isSet()) {
|
||||||
stream << "\nmap_Kd " << m_diffuseMap << ".pvr -s " << m_diffuseMapScale.x << " " << m_diffuseMapScale.y << " -o " << m_diffuseMapOffset.x << " " << m_diffuseMapOffset.y;
|
stream << "\nmap_Kd " << m_diffuseMap.getName() << ".pvr -s " << m_diffuseMapScale.x << " " << m_diffuseMapScale.y << " -o " << m_diffuseMapOffset.x << " " << m_diffuseMapOffset.y;
|
||||||
} else {
|
} else {
|
||||||
stream << "\n# map_Kd filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
stream << "\n# map_Kd filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
||||||
}
|
}
|
||||||
if (m_specularMap.size()) {
|
if (m_specularMap.isSet()) {
|
||||||
stream << "\nmap_Ks " << m_specularMap << ".pvr -s " << m_specularMapScale.x << " " << m_specularMapScale.y << " -o " << m_specularMapOffset.x << " " << m_specularMapOffset.y << "\n";
|
stream << "\nmap_Ks " << m_specularMap.getName() << ".pvr -s " << m_specularMapScale.x << " " << m_specularMapScale.y << " -o " << m_specularMapOffset.x << " " << m_specularMapOffset.y << "\n";
|
||||||
} else {
|
} else {
|
||||||
stream << "\n# map_Ks filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
stream << "\n# map_Ks filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
||||||
}
|
}
|
||||||
if (m_normalMap.size()) {
|
if (m_normalMap.isSet()) {
|
||||||
stream << "\nmap_Normal " << m_normalMap << ".pvr -s " << m_normalMapScale.x << " " << m_normalMapScale.y << " -o " << m_normalMapOffset.x << " " << m_normalMapOffset.y;
|
stream << "\nmap_Normal " << m_normalMap.getName() << ".pvr -s " << m_normalMapScale.x << " " << m_normalMapScale.y << " -o " << m_normalMapOffset.x << " " << m_normalMapOffset.y;
|
||||||
} else {
|
} else {
|
||||||
stream << "\n# map_Normal filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
stream << "\n# map_Normal filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
||||||
}
|
}
|
||||||
if (m_reflectionMap.size()) {
|
if (m_reflectionMap.isSet()) {
|
||||||
stream << "\nmap_Reflection " << m_reflectionMap << ".pvr -s " << m_reflectionMapScale.x << " " << m_reflectionMapScale.y << " -o " << m_reflectionMapOffset.x << " " << m_reflectionMapOffset.y;
|
stream << "\nmap_Reflection " << m_reflectionMap.getName() << ".pvr -s " << m_reflectionMapScale.x << " " << m_reflectionMapScale.y << " -o " << m_reflectionMapOffset.x << " " << m_reflectionMapOffset.y;
|
||||||
} else {
|
} else {
|
||||||
stream << "\n# map_Reflection filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
stream << "\n# map_Reflection filename.pvr -s 1.0 1.0 -o 0.0 0.0";
|
||||||
}
|
}
|
||||||
if (m_reflectionCube.size()) {
|
if (m_reflectionCube.isSet()) {
|
||||||
stream << "\nmap_ReflectionCube " << m_reflectionCube << ".pvr";
|
stream << "\nmap_ReflectionCube " << m_reflectionCube.getName() << ".pvr";
|
||||||
} else {
|
} else {
|
||||||
stream << "\n# map_ReflectionCube cubemapname";
|
stream << "\n# map_ReflectionCube cubemapname";
|
||||||
}
|
}
|
||||||
@@ -154,42 +142,42 @@ bool KRMaterial::save(Block& data)
|
|||||||
|
|
||||||
void KRMaterial::setAmbientMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
void KRMaterial::setAmbientMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
||||||
{
|
{
|
||||||
m_ambientMap = texture_name;
|
m_ambientMap.setName(texture_name);
|
||||||
m_ambientMapScale = texture_scale;
|
m_ambientMapScale = texture_scale;
|
||||||
m_ambientMapOffset = texture_offset;
|
m_ambientMapOffset = texture_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRMaterial::setDiffuseMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
void KRMaterial::setDiffuseMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
||||||
{
|
{
|
||||||
m_diffuseMap = texture_name;
|
m_diffuseMap.setName(texture_name);
|
||||||
m_diffuseMapScale = texture_scale;
|
m_diffuseMapScale = texture_scale;
|
||||||
m_diffuseMapOffset = texture_offset;
|
m_diffuseMapOffset = texture_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRMaterial::setSpecularMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
void KRMaterial::setSpecularMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
||||||
{
|
{
|
||||||
m_specularMap = texture_name;
|
m_specularMap.setName(texture_name);
|
||||||
m_specularMapScale = texture_scale;
|
m_specularMapScale = texture_scale;
|
||||||
m_specularMapOffset = texture_offset;
|
m_specularMapOffset = texture_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRMaterial::setNormalMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
void KRMaterial::setNormalMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
||||||
{
|
{
|
||||||
m_normalMap = texture_name;
|
m_normalMap.setName(texture_name);
|
||||||
m_normalMapScale = texture_scale;
|
m_normalMapScale = texture_scale;
|
||||||
m_normalMapOffset = texture_offset;
|
m_normalMapOffset = texture_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRMaterial::setReflectionMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
void KRMaterial::setReflectionMap(std::string texture_name, Vector2 texture_scale, Vector2 texture_offset)
|
||||||
{
|
{
|
||||||
m_reflectionMap = texture_name;
|
m_reflectionMap.setName(texture_name);
|
||||||
m_reflectionMapScale = texture_scale;
|
m_reflectionMapScale = texture_scale;
|
||||||
m_reflectionMapOffset = texture_offset;
|
m_reflectionMapOffset = texture_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRMaterial::setReflectionCube(std::string texture_name)
|
void KRMaterial::setReflectionCube(std::string texture_name)
|
||||||
{
|
{
|
||||||
m_reflectionCube = texture_name;
|
m_reflectionCube.setName(texture_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRMaterial::setAlphaMode(KRMaterial::alpha_mode_type alpha_mode)
|
void KRMaterial::setAlphaMode(KRMaterial::alpha_mode_type alpha_mode)
|
||||||
@@ -244,28 +232,28 @@ void KRMaterial::preStream(float lodCoverage)
|
|||||||
{
|
{
|
||||||
getTextures();
|
getTextures();
|
||||||
|
|
||||||
if (m_pAmbientMap) {
|
if (m_ambientMap.isLoaded()) {
|
||||||
m_pAmbientMap->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_AMBIENT_MAP);
|
m_ambientMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_AMBIENT_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pDiffuseMap) {
|
if (m_diffuseMap.isLoaded()) {
|
||||||
m_pDiffuseMap->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP);
|
m_diffuseMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pNormalMap) {
|
if (m_normalMap.isLoaded()) {
|
||||||
m_pNormalMap->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_NORMAL_MAP);
|
m_normalMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_NORMAL_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pSpecularMap) {
|
if (m_specularMap.isLoaded()) {
|
||||||
m_pSpecularMap->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_SPECULAR_MAP);
|
m_specularMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_SPECULAR_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pReflectionMap) {
|
if (m_reflectionMap.isLoaded()) {
|
||||||
m_pReflectionMap->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_REFLECTION_MAP);
|
m_reflectionMap.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_REFLECTION_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pReflectionCube) {
|
if (m_reflectionCube.isLoaded()) {
|
||||||
m_pReflectionCube->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_REFECTION_CUBE);
|
m_reflectionCube.get()->resetPoolExpiry(lodCoverage, KRTexture::TEXTURE_USAGE_REFECTION_CUBE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -276,28 +264,28 @@ kraken_stream_level KRMaterial::getStreamLevel()
|
|||||||
|
|
||||||
getTextures();
|
getTextures();
|
||||||
|
|
||||||
if (m_pAmbientMap) {
|
if (m_ambientMap.isLoaded()) {
|
||||||
stream_level = KRMIN(stream_level, m_pAmbientMap->getStreamLevel(KRTexture::TEXTURE_USAGE_AMBIENT_MAP));
|
stream_level = KRMIN(stream_level, m_ambientMap.get()->getStreamLevel(KRTexture::TEXTURE_USAGE_AMBIENT_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pDiffuseMap) {
|
if (m_diffuseMap.isLoaded()) {
|
||||||
stream_level = KRMIN(stream_level, m_pDiffuseMap->getStreamLevel(KRTexture::TEXTURE_USAGE_DIFFUSE_MAP));
|
stream_level = KRMIN(stream_level, m_diffuseMap.get()->getStreamLevel(KRTexture::TEXTURE_USAGE_DIFFUSE_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pNormalMap) {
|
if (m_normalMap.isLoaded()) {
|
||||||
stream_level = KRMIN(stream_level, m_pNormalMap->getStreamLevel(KRTexture::TEXTURE_USAGE_NORMAL_MAP));
|
stream_level = KRMIN(stream_level, m_normalMap.get()->getStreamLevel(KRTexture::TEXTURE_USAGE_NORMAL_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pSpecularMap) {
|
if (m_specularMap.isLoaded()) {
|
||||||
stream_level = KRMIN(stream_level, m_pSpecularMap->getStreamLevel(KRTexture::TEXTURE_USAGE_SPECULAR_MAP));
|
stream_level = KRMIN(stream_level, m_specularMap.get()->getStreamLevel(KRTexture::TEXTURE_USAGE_SPECULAR_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pReflectionMap) {
|
if (m_reflectionMap.isLoaded()) {
|
||||||
stream_level = KRMIN(stream_level, m_pReflectionMap->getStreamLevel(KRTexture::TEXTURE_USAGE_REFLECTION_MAP));
|
stream_level = KRMIN(stream_level, m_reflectionMap.get()->getStreamLevel(KRTexture::TEXTURE_USAGE_REFLECTION_MAP));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pReflectionCube) {
|
if (m_reflectionCube.isLoaded()) {
|
||||||
stream_level = KRMIN(stream_level, m_pReflectionCube->getStreamLevel(KRTexture::TEXTURE_USAGE_REFECTION_CUBE));
|
stream_level = KRMIN(stream_level, m_reflectionCube.get()->getStreamLevel(KRTexture::TEXTURE_USAGE_REFECTION_CUBE));
|
||||||
}
|
}
|
||||||
|
|
||||||
return stream_level;
|
return stream_level;
|
||||||
@@ -305,24 +293,12 @@ kraken_stream_level KRMaterial::getStreamLevel()
|
|||||||
|
|
||||||
void KRMaterial::getTextures()
|
void KRMaterial::getTextures()
|
||||||
{
|
{
|
||||||
if (!m_pAmbientMap && m_ambientMap.size()) {
|
m_ambientMap.load(&getContext());
|
||||||
m_pAmbientMap = getContext().getTextureManager()->getTexture(m_ambientMap);
|
m_diffuseMap.load(&getContext());
|
||||||
}
|
m_normalMap.load(&getContext());
|
||||||
if (!m_pDiffuseMap && m_diffuseMap.size()) {
|
m_specularMap.load(&getContext());
|
||||||
m_pDiffuseMap = getContext().getTextureManager()->getTexture(m_diffuseMap);
|
m_reflectionMap.load(&getContext());
|
||||||
}
|
m_reflectionCube.load(&getContext());
|
||||||
if (!m_pNormalMap && m_normalMap.size()) {
|
|
||||||
m_pNormalMap = getContext().getTextureManager()->getTexture(m_normalMap);
|
|
||||||
}
|
|
||||||
if (!m_pSpecularMap && m_specularMap.size()) {
|
|
||||||
m_pSpecularMap = getContext().getTextureManager()->getTexture(m_specularMap);
|
|
||||||
}
|
|
||||||
if (!m_pReflectionMap && m_reflectionMap.size()) {
|
|
||||||
m_pReflectionMap = getContext().getTextureManager()->getTexture(m_reflectionMap);
|
|
||||||
}
|
|
||||||
if (!m_pReflectionCube && m_reflectionCube.size()) {
|
|
||||||
m_pReflectionCube = getContext().getTextureManager()->getTextureCube(m_reflectionCube.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KRMaterial::bind(KRNode::RenderInfo& ri, ModelFormat modelFormat, __uint32_t vertexAttributes, CullMode cullMode, const std::vector<KRBone*>& bones, const std::vector<Matrix4>& bind_poses, const Matrix4& matModel, KRTexture* pLightMap, float lod_coverage)
|
void KRMaterial::bind(KRNode::RenderInfo& ri, ModelFormat modelFormat, __uint32_t vertexAttributes, CullMode cullMode, const std::vector<KRBone*>& bones, const std::vector<Matrix4>& bind_poses, const Matrix4& matModel, KRTexture* pLightMap, float lod_coverage)
|
||||||
@@ -335,11 +311,11 @@ void KRMaterial::bind(KRNode::RenderInfo& ri, ModelFormat modelFormat, __uint32_
|
|||||||
Vector2 default_offset = Vector2::Zero();
|
Vector2 default_offset = Vector2::Zero();
|
||||||
|
|
||||||
bool bHasReflection = m_reflectionColor != Vector3::Zero();
|
bool bHasReflection = m_reflectionColor != Vector3::Zero();
|
||||||
bool bDiffuseMap = m_pDiffuseMap != NULL && ri.camera->settings.bEnableDiffuseMap;
|
bool bDiffuseMap = m_diffuseMap.isLoaded() && ri.camera->settings.bEnableDiffuseMap;
|
||||||
bool bNormalMap = m_pNormalMap != NULL && ri.camera->settings.bEnableNormalMap;
|
bool bNormalMap = m_normalMap.isLoaded() && ri.camera->settings.bEnableNormalMap;
|
||||||
bool bSpecMap = m_pSpecularMap != NULL && ri.camera->settings.bEnableSpecMap;
|
bool bSpecMap = m_specularMap.isLoaded() && ri.camera->settings.bEnableSpecMap;
|
||||||
bool bReflectionMap = m_pReflectionMap != NULL && ri.camera->settings.bEnableReflectionMap && ri.camera->settings.bEnableReflection && bHasReflection;
|
bool bReflectionMap = m_reflectionMap.isLoaded() && ri.camera->settings.bEnableReflectionMap && ri.camera->settings.bEnableReflection && bHasReflection;
|
||||||
bool bReflectionCubeMap = m_pReflectionCube != NULL && ri.camera->settings.bEnableReflection && bHasReflection;
|
bool bReflectionCubeMap = m_reflectionCube.isLoaded() && ri.camera->settings.bEnableReflection && bHasReflection;
|
||||||
bool bAlphaTest = (m_alpha_mode == KRMATERIAL_ALPHA_MODE_TEST) && bDiffuseMap;
|
bool bAlphaTest = (m_alpha_mode == KRMATERIAL_ALPHA_MODE_TEST) && bDiffuseMap;
|
||||||
bool bAlphaBlend = (m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDONESIDE) || (m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE);
|
bool bAlphaBlend = (m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDONESIDE) || (m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE);
|
||||||
|
|
||||||
@@ -408,28 +384,28 @@ void KRMaterial::bind(KRNode::RenderInfo& ri, ModelFormat modelFormat, __uint32_
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (bDiffuseMap) {
|
if (bDiffuseMap) {
|
||||||
m_pDiffuseMap->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP);
|
m_diffuseMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_DIFFUSE_MAP);
|
||||||
pShader->setImageBinding("diffuseTexture", m_pDiffuseMap, getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
|
pShader->setImageBinding("diffuseTexture", m_diffuseMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bSpecMap) {
|
if (bSpecMap) {
|
||||||
m_pSpecularMap->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_SPECULAR_MAP);
|
m_specularMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_SPECULAR_MAP);
|
||||||
pShader->setImageBinding("specularTexture", m_pDiffuseMap, getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
|
pShader->setImageBinding("specularTexture", m_specularMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bNormalMap) {
|
if (bNormalMap) {
|
||||||
m_pNormalMap->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_NORMAL_MAP);
|
m_normalMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_NORMAL_MAP);
|
||||||
pShader->setImageBinding("normalTexture", m_pNormalMap, getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
|
pShader->setImageBinding("normalTexture", m_normalMap.get(), getContext().getSamplerManager()->DEFAULT_WRAPPING_SAMPLER);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bReflectionCubeMap) {
|
if (bReflectionCubeMap) {
|
||||||
m_pReflectionCube->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_REFECTION_CUBE);
|
m_reflectionCube.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_REFECTION_CUBE);
|
||||||
pShader->setImageBinding("reflectionCubeTexture", m_pReflectionCube, getContext().getSamplerManager()->DEFAULT_CLAMPED_SAMPLER);
|
pShader->setImageBinding("reflectionCubeTexture", m_reflectionCube.get(), getContext().getSamplerManager()->DEFAULT_CLAMPED_SAMPLER);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bReflectionMap) {
|
if (bReflectionMap) {
|
||||||
m_pReflectionMap->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_REFLECTION_MAP);
|
m_reflectionMap.get()->resetPoolExpiry(lod_coverage, KRTexture::TEXTURE_USAGE_REFLECTION_MAP);
|
||||||
pShader->setImageBinding("reflectionTexture", m_pReflectionMap, getContext().getSamplerManager()->DEFAULT_CLAMPED_SAMPLER);
|
pShader->setImageBinding("reflectionTexture", m_reflectionMap.get(), getContext().getSamplerManager()->DEFAULT_CLAMPED_SAMPLER);
|
||||||
}
|
}
|
||||||
|
|
||||||
ri.reflectedObjects.push_back(this);
|
ri.reflectedObjects.push_back(this);
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
#include "KREngine-common.h"
|
#include "KREngine-common.h"
|
||||||
|
|
||||||
#include "resources/texture/KRTexture.h"
|
#include "resources/texture/KRTexture.h"
|
||||||
|
#include "resources/texture/KRTextureBinding.h"
|
||||||
#include "KRPipelineManager.h"
|
#include "KRPipelineManager.h"
|
||||||
#include "KRPipeline.h"
|
#include "KRPipeline.h"
|
||||||
#include "nodes/KRCamera.h"
|
#include "nodes/KRCamera.h"
|
||||||
@@ -100,18 +101,12 @@ public:
|
|||||||
private:
|
private:
|
||||||
std::string m_name;
|
std::string m_name;
|
||||||
|
|
||||||
KRTexture* m_pAmbientMap; // mtl map_Ka value
|
KRTextureBinding m_ambientMap; // mtl map_Ka value
|
||||||
KRTexture* m_pDiffuseMap; // mtl map_Kd value
|
KRTextureBinding m_diffuseMap; // mtl map_Kd value
|
||||||
KRTexture* m_pSpecularMap; // mtl map_Ks value
|
KRTextureBinding m_specularMap; // mtl map_Ks value
|
||||||
KRTexture* m_pReflectionMap; // mtl refl value
|
KRTextureBinding m_reflectionMap; // mtl refl value
|
||||||
KRTexture* m_pReflectionCube;
|
KRTextureBinding m_reflectionCube;
|
||||||
KRTexture* m_pNormalMap; // mtl map_Normal value
|
KRTextureBinding m_normalMap; // mtl map_Normal value
|
||||||
std::string m_ambientMap;
|
|
||||||
std::string m_diffuseMap;
|
|
||||||
std::string m_specularMap;
|
|
||||||
std::string m_reflectionMap;
|
|
||||||
std::string m_reflectionCube;
|
|
||||||
std::string m_normalMap;
|
|
||||||
|
|
||||||
hydra::Vector2 m_ambientMapScale;
|
hydra::Vector2 m_ambientMapScale;
|
||||||
hydra::Vector2 m_ambientMapOffset;
|
hydra::Vector2 m_ambientMapOffset;
|
||||||
|
|||||||
Reference in New Issue
Block a user