|
18 | 18 | #import "CCSprite_Private.h"
|
19 | 19 |
|
20 | 20 |
|
| 21 | +static const float CCEffectGlassDefaultFresnelBias = 0.1f; |
| 22 | +static const float CCEffectGlassDefaultFresnelPower = 2.0f; |
| 23 | + |
| 24 | + |
21 | 25 | @interface CCEffectGlass ()
|
22 | 26 |
|
23 | 27 | @property (nonatomic) float conditionedRefraction;
|
| 28 | +@property (nonatomic) float conditionedShininess; |
| 29 | +@property (nonatomic) float conditionedFresnelBias; |
| 30 | +@property (nonatomic) float conditionedFresnelPower; |
24 | 31 |
|
25 | 32 | @end
|
26 | 33 |
|
@@ -61,10 +68,17 @@ -(id)initWithShininess:(float)shininess refraction:(float)refraction refractionE
|
61 | 68 | if((self = [super initWithFragmentUniforms:uniforms vertexUniforms:nil varying:nil]))
|
62 | 69 | {
|
63 | 70 | _refraction = refraction;
|
64 |
| - _shininess = shininess; |
65 |
| - _fresnelBias = 0.1f; |
66 |
| - _fresnelPower = 2.0f; |
67 | 71 | _conditionedRefraction = CCEffectUtilsConditionRefraction(refraction);
|
| 72 | + |
| 73 | + _shininess = shininess; |
| 74 | + _conditionedShininess = CCEffectUtilsConditionShininess(shininess); |
| 75 | + |
| 76 | + _fresnelBias = CCEffectGlassDefaultFresnelBias; |
| 77 | + _conditionedFresnelBias = CCEffectUtilsConditionFresnelBias(CCEffectGlassDefaultFresnelBias); |
| 78 | + |
| 79 | + _fresnelPower = CCEffectGlassDefaultFresnelPower; |
| 80 | + _conditionedFresnelPower = CCEffectUtilsConditionFresnelPower(CCEffectGlassDefaultFresnelPower); |
| 81 | + |
68 | 82 | _refractionEnvironment = refractionEnvironment;
|
69 | 83 | _reflectionEnvironment = reflectionEnvironment;
|
70 | 84 | _normalMap = normalMap;
|
@@ -185,9 +199,9 @@ -(void)buildRenderPasses
|
185 | 199 |
|
186 | 200 | pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_refraction"]] = [NSNumber numberWithFloat:weakSelf.conditionedRefraction];
|
187 | 201 |
|
188 |
| - pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_shininess"]] = [NSNumber numberWithFloat:weakSelf.shininess]; |
189 |
| - pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_fresnelBias"]] = [NSNumber numberWithFloat:weakSelf.fresnelBias]; |
190 |
| - pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_fresnelPower"]] = [NSNumber numberWithFloat:weakSelf.fresnelPower]; |
| 202 | + pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_shininess"]] = [NSNumber numberWithFloat:weakSelf.conditionedShininess]; |
| 203 | + pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_fresnelBias"]] = [NSNumber numberWithFloat:weakSelf.conditionedFresnelBias]; |
| 204 | + pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_fresnelPower"]] = [NSNumber numberWithFloat:weakSelf.conditionedFresnelPower]; |
191 | 205 |
|
192 | 206 | pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_refractEnvMap"]] = weakSelf.refractionEnvironment.texture ?: [CCTexture none];
|
193 | 207 | pass.shaderUniforms[weakSelf.uniformTranslationTable[@"u_reflectEnvMap"]] = weakSelf.reflectionEnvironment.texture ?: [CCTexture none];
|
@@ -235,4 +249,23 @@ -(void)setRefraction:(float)refraction
|
235 | 249 | _refraction = refraction;
|
236 | 250 | _conditionedRefraction = CCEffectUtilsConditionRefraction(refraction);
|
237 | 251 | }
|
| 252 | + |
| 253 | +-(void)setShininess:(float)shininess |
| 254 | +{ |
| 255 | + _shininess = shininess; |
| 256 | + _conditionedShininess = CCEffectUtilsConditionShininess(shininess); |
| 257 | +} |
| 258 | + |
| 259 | +-(void)setFresnelBias:(float)bias |
| 260 | +{ |
| 261 | + _fresnelBias = bias; |
| 262 | + _conditionedFresnelBias = CCEffectUtilsConditionFresnelBias(bias); |
| 263 | +} |
| 264 | + |
| 265 | +-(void)setFresnelPower:(float)power |
| 266 | +{ |
| 267 | + _fresnelPower = power; |
| 268 | + _conditionedFresnelPower = CCEffectUtilsConditionFresnelPower(power); |
| 269 | +} |
| 270 | + |
238 | 271 | @end
|
0 commit comments