Skip to content

Commit

Permalink
Fix exposure in Viewport.
Browse files Browse the repository at this point in the history
  • Loading branch information
SamuelTallet committed Jul 14, 2018
1 parent 13f9e29 commit 8aa1083
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 104 deletions.
5 changes: 3 additions & 2 deletions source/pbr.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
# PBR plugin namespace.
module PBR

VERSION = '1.4.3'.freeze
VERSION = '1.4.4'.freeze

# Load translation if it's available for current locale.
TRANSLATE = LanguageHandler.new('pbr.strings')
Expand All @@ -49,7 +49,8 @@ module PBR

features = [
TRANSLATE['Add reflects and reliefs to your SketchUp models.'],
TRANSLATE['Get a realistic render in real-time.'],
TRANSLATE['Get a render in seconds.'],
TRANSLATE['Control camera and atmosphere in real-time.'],
TRANSLATE['Export result to image or 3D object.']
]

Expand Down
3 changes: 2 additions & 1 deletion source/pbr/Resources/fr/pbr.strings
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@

"Physically-Based Rendering"="Rendu basé sur la physique";
"Add reflects and reliefs to your SketchUp models."="Ajoutez des reflets et des reliefs à vos modèles SketchUp.";
"Get a realistic render in real-time."="Obtenez un rendu réaliste en temps réel.";
"Get a render in seconds."="Obtenez un rendu en quelques secondes.";
"Control camera and atmosphere in real-time."="Contrôlez la caméra et l'atmosphère en temps réel.";
"Export result to image or 3D object."="Exportez le résultat en image ou en objet 3D.";
"Please install required plugin: glTF Export."="Veuillez installer le plugin requis : glTF Export.";

Expand Down
8 changes: 8 additions & 0 deletions source/pbr/Viewport App/lib/aframe-expose-renderer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// Expose three.js renderer. That's all! :o)
AFRAME.registerComponent('expose-renderer', {

init: function() {
PBR.Viewport.renderer = this.el.renderer;
}

});
10 changes: 6 additions & 4 deletions source/pbr/Viewport App/viewport.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@
<title>...</title>

<script src="lib/aframe/aframe-v0.8.2.min.js"></script>
<script src="lib/aframe-expose-renderer.js"></script>
<script src="lib/aframe-orbit-controls/aframe-orbit-controls.min.js"></script>
<script src="lib/aframe-gamepad-controls/aframe-gamepad-controls.min.js"></script>
<script src="lib/aframe-environment-component/aframe-environment-component.min.js"></script>
<script src="lib/aframe-extras/cube-env-map.js"></script>

<script src="assets/sketchup-locale.json"></script>
<script src="viewport.js"></script>

Expand All @@ -35,8 +36,8 @@
<input id="sunElevationSlider"
type="range"
min="-0.1"
max="1.0"
value="0.6"
max="1.5"
value="0.8"
step="0.1">
</input>

Expand All @@ -52,7 +53,8 @@
shadow="type: pcfsoft"
renderer="
antialias: true;
gammaOutput: true">
gammaOutput: true"
expose-renderer>

<a-assets>
<a-asset-item id="sketchUpModelSrc"
Expand Down
98 changes: 1 addition & 97 deletions source/pbr/Viewport App/viewport.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,99 +67,6 @@ PBR.Viewport.toggleEnvSkyVisibility = function() {

};

/**
* Returns ambient lightness value according to sunlight position...
*
* @param {number} sunlightPositionY - Sunlight position Y.
*
* @returns {number} Ambient lightness.
*/
PBR.Viewport.guessAmbientLightnessBySunPosY = function(sunlightPositionY) {

// XXX Arbitrary values.

var ambientLightness = 0;

switch (parseFloat(sunlightPositionY).toFixed(1)) {

case '1.0':
ambientLightness = 60;
break;

case '0.9':
ambientLightness = 55;
break;

case '0.8':
ambientLightness = 50;
break;

case '0.7':
ambientLightness = 45;
break;

case '0.6':
ambientLightness = 40;
break;

case '0.5':
ambientLightness = 35;
break;

case '0.4':
ambientLightness = 30;
break;

case '0.3':
ambientLightness = 25;
break;

case '0.2':
ambientLightness = 20;
break;

case '0.1':
ambientLightness = 15;
break;

case '0.0':
ambientLightness = 10;
break;

case '-0.1':
ambientLightness = 5;
break;

}


return ambientLightness;

};

/**
* Defines ambient lightness.
*
* @param {number} lightness
*/
PBR.Viewport.setAmbientLightness = function(lightness) {

var ambientLight = document.getElementById('ambientLight');

// XXX Arbitrary values.

var hue = 195;
var saturation = 5;

var hslColor = 'hsl('
+ hue + ','
+ saturation + '%,'
+ lightness + '%)';

ambientLight.setAttribute('light', 'color: ' + hslColor);

};

/**
* Defines environment light position.
*
Expand Down Expand Up @@ -255,10 +162,7 @@ PBR.Viewport.syncLights = function() {
sunlightPosition.z
);

var ambientLightness = PBR.Viewport
.guessAmbientLightnessBySunPosY(sunlightPosition.y);

PBR.Viewport.setAmbientLightness(ambientLightness);
PBR.Viewport.renderer.toneMappingExposure = sunlightPosition.y;

// If sun is above horizon:
if ( sunlightPosition.y > 0 ) {
Expand Down

0 comments on commit 8aa1083

Please sign in to comment.