Exposed anisotropic filtering level through the quality settings
This commit is contained in:
@@ -195,7 +195,8 @@ void kraken::set_parameter(const std::string ¶meter_name, float parameter_va
|
|||||||
@"debug_display" : @48,
|
@"debug_display" : @48,
|
||||||
@"siren_enable" : @49,
|
@"siren_enable" : @49,
|
||||||
@"siren_enable_reverb" : @50,
|
@"siren_enable_reverb" : @50,
|
||||||
@"siren_enable_hrtf" : @51
|
@"siren_enable_hrtf" : @51,
|
||||||
|
@"max_anisotropy" : @52
|
||||||
|
|
||||||
} copy];
|
} copy];
|
||||||
[self loadShaders];
|
[self loadShaders];
|
||||||
@@ -268,7 +269,7 @@ void kraken::set_parameter(const std::string ¶meter_name, float parameter_va
|
|||||||
|
|
||||||
-(int)getParameterCount
|
-(int)getParameterCount
|
||||||
{
|
{
|
||||||
return 52;
|
return 53;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -284,7 +285,7 @@ void kraken::set_parameter(const std::string ¶meter_name, float parameter_va
|
|||||||
|
|
||||||
-(NSString *)getParameterLabelWithIndex: (int)i
|
-(NSString *)getParameterLabelWithIndex: (int)i
|
||||||
{
|
{
|
||||||
NSString *parameter_labels[52] = {
|
NSString *parameter_labels[53] = {
|
||||||
@"Camera FOV",
|
@"Camera FOV",
|
||||||
@"Shadow Quality (0 - 2)",
|
@"Shadow Quality (0 - 2)",
|
||||||
@"Enable per-pixel lighting",
|
@"Enable per-pixel lighting",
|
||||||
@@ -336,13 +337,14 @@ void kraken::set_parameter(const std::string ¶meter_name, float parameter_va
|
|||||||
@"Debug - Display",
|
@"Debug - Display",
|
||||||
@"Siren - Enable Audio",
|
@"Siren - Enable Audio",
|
||||||
@"Siren - Enable Reverb",
|
@"Siren - Enable Reverb",
|
||||||
@"Siren - Enable HRTF"
|
@"Siren - Enable HRTF",
|
||||||
|
@"Anisotropic Filtering"
|
||||||
};
|
};
|
||||||
return parameter_labels[i];
|
return parameter_labels[i];
|
||||||
}
|
}
|
||||||
-(KREngineParameterType)getParameterTypeWithIndex: (int)i
|
-(KREngineParameterType)getParameterTypeWithIndex: (int)i
|
||||||
{
|
{
|
||||||
KREngineParameterType types[52] = {
|
KREngineParameterType types[53] = {
|
||||||
|
|
||||||
KRENGINE_PARAMETER_FLOAT,
|
KRENGINE_PARAMETER_FLOAT,
|
||||||
KRENGINE_PARAMETER_INT,
|
KRENGINE_PARAMETER_INT,
|
||||||
@@ -395,13 +397,14 @@ void kraken::set_parameter(const std::string ¶meter_name, float parameter_va
|
|||||||
KRENGINE_PARAMETER_INT,
|
KRENGINE_PARAMETER_INT,
|
||||||
KRENGINE_PARAMETER_BOOL,
|
KRENGINE_PARAMETER_BOOL,
|
||||||
KRENGINE_PARAMETER_BOOL,
|
KRENGINE_PARAMETER_BOOL,
|
||||||
KRENGINE_PARAMETER_BOOL
|
KRENGINE_PARAMETER_BOOL,
|
||||||
|
KRENGINE_PARAMETER_FLOAT
|
||||||
};
|
};
|
||||||
return types[i];
|
return types[i];
|
||||||
}
|
}
|
||||||
-(float)getParameterValueWithIndex: (int)i
|
-(float)getParameterValueWithIndex: (int)i
|
||||||
{
|
{
|
||||||
float values[52] = {
|
float values[53] = {
|
||||||
_settings.perspective_fov,
|
_settings.perspective_fov,
|
||||||
(float)_settings.m_cShadowBuffers,
|
(float)_settings.m_cShadowBuffers,
|
||||||
_settings.bEnablePerPixel ? 1.0f : 0.0f,
|
_settings.bEnablePerPixel ? 1.0f : 0.0f,
|
||||||
@@ -453,7 +456,8 @@ void kraken::set_parameter(const std::string ¶meter_name, float parameter_va
|
|||||||
_settings.debug_display,
|
_settings.debug_display,
|
||||||
_settings.siren_enable,
|
_settings.siren_enable,
|
||||||
_settings.siren_enable_reverb,
|
_settings.siren_enable_reverb,
|
||||||
_settings.siren_enable_hrtf
|
_settings.siren_enable_hrtf,
|
||||||
|
_settings.max_anisotropy
|
||||||
};
|
};
|
||||||
return values[i];
|
return values[i];
|
||||||
}
|
}
|
||||||
@@ -654,18 +658,21 @@ void kraken::set_parameter(const std::string ¶meter_name, float parameter_va
|
|||||||
case 51:
|
case 51:
|
||||||
_settings.siren_enable_hrtf = bNewBoolVal;
|
_settings.siren_enable_hrtf = bNewBoolVal;
|
||||||
break;
|
break;
|
||||||
|
case 52:
|
||||||
|
_settings.max_anisotropy = v;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
-(float)getParameterMinWithIndex: (int)i
|
-(float)getParameterMinWithIndex: (int)i
|
||||||
{
|
{
|
||||||
float minValues[52] = {
|
float minValues[53] = {
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.01f, 50.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
0.0f, 0.0f, 0.01f, 50.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -10.0f, 0.0f, 0.0f,
|
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -10.0f, 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f
|
0.0f, 0.0f, 0.0f, 1.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
return minValues[i];
|
return minValues[i];
|
||||||
@@ -673,13 +680,13 @@ void kraken::set_parameter(const std::string ¶meter_name, float parameter_va
|
|||||||
|
|
||||||
-(float)getParameterMaxWithIndex: (int)i
|
-(float)getParameterMaxWithIndex: (int)i
|
||||||
{
|
{
|
||||||
float maxValues[52] = {
|
float maxValues[53] = {
|
||||||
PI, 3.0f, 1.0f, 1.0, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 10.0f,
|
PI, 3.0f, 1.0f, 1.0, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 10.0f,
|
||||||
1.0f, 10.0f, 2.0f, 1.0f, 1.0f, 1.0f, 5.0f, 1.0f, 0.5f, 1.0f,
|
1.0f, 10.0f, 2.0f, 1.0f, 1.0f, 1.0f, 5.0f, 1.0f, 0.5f, 1.0f,
|
||||||
2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
|
2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
|
||||||
1.0f, 1.0f, 10.0f, 1000.0f, 1.0f, 5.0f, 1000.0f, 1.0f, 5.0f, 3.0f,
|
1.0f, 1.0f, 10.0f, 1000.0f, 1.0f, 5.0f, 1000.0f, 1.0f, 5.0f, 3.0f,
|
||||||
1000.0f, 1000.0f, 0.01f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 10.0f, 1.0f, (float)(KRRenderSettings::KRENGINE_DEBUG_DISPLAY_NUMBER - 1),
|
1000.0f, 1000.0f, 0.01f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 10.0f, 1.0f, (float)(KRRenderSettings::KRENGINE_DEBUG_DISPLAY_NUMBER - 1),
|
||||||
1.0f, 1.0f, 1.0f
|
1.0f, 1.0f, 1.0f, 8.0f
|
||||||
};
|
};
|
||||||
|
|
||||||
return maxValues[i];
|
return maxValues[i];
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ KRRenderSettings::KRRenderSettings()
|
|||||||
bEnableSpecular = true;
|
bEnableSpecular = true;
|
||||||
bEnableLightMap = true;
|
bEnableLightMap = true;
|
||||||
bEnableDeferredLighting = false;
|
bEnableDeferredLighting = false;
|
||||||
|
max_anisotropy = 4.0f;
|
||||||
|
|
||||||
ambient_intensity = KRVector3::Zero();
|
ambient_intensity = KRVector3::Zero();
|
||||||
light_intensity = KRVector3::One();
|
light_intensity = KRVector3::One();
|
||||||
@@ -152,6 +153,8 @@ KRRenderSettings& KRRenderSettings::operator=(const KRRenderSettings &s)
|
|||||||
m_lodBias = s.m_lodBias;
|
m_lodBias = s.m_lodBias;
|
||||||
m_enable_realtime_occlusion = s.m_enable_realtime_occlusion;
|
m_enable_realtime_occlusion = s.m_enable_realtime_occlusion;
|
||||||
|
|
||||||
|
max_anisotropy = s.max_anisotropy;
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,8 @@ public:
|
|||||||
bool siren_enable;
|
bool siren_enable;
|
||||||
bool siren_enable_reverb;
|
bool siren_enable_reverb;
|
||||||
bool siren_enable_hrtf;
|
bool siren_enable_hrtf;
|
||||||
|
|
||||||
|
float max_anisotropy;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float m_lodBias;
|
float m_lodBias;
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ void KRScene::renderFrame(float deltaTime, int width, int height) {
|
|||||||
getContext().getAudioManager()->setEnableAudio(camera->settings.siren_enable);
|
getContext().getAudioManager()->setEnableAudio(camera->settings.siren_enable);
|
||||||
getContext().getAudioManager()->setEnableHRTF(camera->settings.siren_enable_hrtf);
|
getContext().getAudioManager()->setEnableHRTF(camera->settings.siren_enable_hrtf);
|
||||||
getContext().getAudioManager()->setEnableReverb(camera->settings.siren_enable_reverb);
|
getContext().getAudioManager()->setEnableReverb(camera->settings.siren_enable_reverb);
|
||||||
|
getContext().getTextureManager()->setMaxAnisotropy(camera->settings.max_anisotropy);
|
||||||
|
|
||||||
camera->renderFrame(deltaTime, width, height);
|
camera->renderFrame(deltaTime, width, height);
|
||||||
getContext().endFrame(deltaTime);
|
getContext().endFrame(deltaTime);
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ void KRTexture2D::bind(GLuint texture_unit) {
|
|||||||
GLDEBUG(glBindTexture(GL_TEXTURE_2D, handle));
|
GLDEBUG(glBindTexture(GL_TEXTURE_2D, handle));
|
||||||
if(handle) {
|
if(handle) {
|
||||||
// TODO - These texture parameters should be assigned by the material or texture parameters
|
// TODO - These texture parameters should be assigned by the material or texture parameters
|
||||||
m_pContext->getTextureManager()->_setMaxAnisotropy(texture_unit, 1.0f);
|
|
||||||
m_pContext->getTextureManager()->_setWrapModeS(texture_unit, GL_REPEAT);
|
m_pContext->getTextureManager()->_setWrapModeS(texture_unit, GL_REPEAT);
|
||||||
m_pContext->getTextureManager()->_setWrapModeT(texture_unit, GL_REPEAT);
|
m_pContext->getTextureManager()->_setWrapModeT(texture_unit, GL_REPEAT);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,6 +94,13 @@ void KRTextureManager::_setMaxAnisotropy(int i, float max_anisotropy)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KRTextureManager::setMaxAnisotropy(float max_anisotropy)
|
||||||
|
{
|
||||||
|
for(int i=0; i < KRENGINE_MAX_TEXTURE_UNITS; i++) {
|
||||||
|
_setMaxAnisotropy(i, max_anisotropy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void KRTextureManager::_setWrapModeT(GLuint i, GLuint wrap_mode)
|
void KRTextureManager::_setWrapModeT(GLuint i, GLuint wrap_mode)
|
||||||
{
|
{
|
||||||
if(m_wrapModeT[i] != wrap_mode) {
|
if(m_wrapModeT[i] != wrap_mode) {
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ public:
|
|||||||
void _setMaxAnisotropy(int i, float max_anisotropy);
|
void _setMaxAnisotropy(int i, float max_anisotropy);
|
||||||
|
|
||||||
void _clearGLState();
|
void _clearGLState();
|
||||||
|
void setMaxAnisotropy(float max_anisotropy);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_iActiveTexture;
|
int m_iActiveTexture;
|
||||||
|
|||||||
Reference in New Issue
Block a user