123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- window.preparePBR = function() {
- var pbr = new BABYLON.PBRMaterial("pbr", scene);
- pbr.albedoTexture = new BABYLON.Texture("/playground/textures/amiga.jpg", scene);
- pbr.albedoTexture.uScale = 5;
- pbr.albedoTexture.vScale = 5;
-
- var hdrTexture = new BABYLON.HDRCubeTexture("/playground/textures/environment.hdr", scene, 512);
-
- // Uncomment for PMREM Generation
- // var hdrTexture = new BABYLON.HDRCubeTexture("textures/hdr/environment.hdr", scene, 128, false, true, false, true);
- pbr.reflectionTexture = hdrTexture;
- pbr.refractionTexture = hdrTexture;
- pbr.linkRefractionWithTransparency = true;
- pbr.indexOfRefraction = 0.52;
- var colorGrading = new BABYLON.Texture("/playground/textures/colorGrade.png", scene, true);
- pbr.cameraColorGradingTexture = colorGrading;
- pbr.colorGradingEnabled = true;
- pbr.reflectivityColor = new BABYLON.Color3(0.3, 0.3, 0.3);
- pbr.microSurface = 0.9;
-
- // Skybox
- var hdrSkybox = BABYLON.Mesh.CreateBox("hdrSkyBox", 1000.0, scene);
- var hdrSkyboxMaterial = new BABYLON.PBRMaterial("skyBox", scene);
- hdrSkyboxMaterial.backFaceCulling = false;
- hdrSkyboxMaterial.reflectionTexture = hdrTexture.clone();
- hdrSkyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
- hdrSkyboxMaterial.microSurface = 1;
- hdrSkyboxMaterial.specularColor = new BABYLON.Color3(1, 1, 1);
- hdrSkyboxMaterial.disableLighting = true;
- hdrSkyboxMaterial.cameraExposure = 0.6;
- hdrSkyboxMaterial.cameraContrast = 1.6;
- hdrSkyboxMaterial.directIntensity = 0;
- hdrSkybox.material = hdrSkyboxMaterial;
- hdrSkybox.infiniteDistance = true;
- hdrSkybox.setEnabled(false);
-
- registerButtonUI("pbr", "Default", function() {
- setRangeValues({
- "directIntensity": 1,
- "emissiveIntensity": 1,
- "environmentIntensity": 1,
- "specularIntensity": 1,
- "ShadowIntensity": 1,
- "ShadeIntensity": 1,
- "cameraExposure": 1,
- "cameraContrast": 1,
- "microSurface": 0.9,
- "reflectivityColorR": 0.3,
- "reflectivityColorG": 0.3,
- "reflectivityColorB": 0.3,
- "albedoColorR": 1,
- "albedoColorG": 1,
- "albedoColorB": 1,
- "albedoColorLevel": 0
- });
- });
- registerButtonUI("pbr", "Env Irradiance", function() {
- setRangeValues({
- "directIntensity": 0,
- "emissiveIntensity": 1,
- "environmentIntensity": 1,
- "specularIntensity": 1,
- "ShadowIntensity": 1,
- "ShadeIntensity": 1,
- "cameraExposure": 1,
- "cameraContrast": 1,
- "microSurface": 0,
- "reflectivityColorR": 0,
- "reflectivityColorG": 0,
- "reflectivityColorB": 0,
- "albedoColorR": 1,
- "albedoColorG": 1,
- "albedoColorB": 1,
- "albedoColorLevel": 1
- });
-
- hdrSkybox.setEnabled(true);
- });
- registerButtonUI("pbr", "Rough Gold", function() {
- setRangeValues({
- "directIntensity": 1.3439461727881254,
- "emissiveIntensity": 1,
- "environmentIntensity": 0.3685013699580344,
- "specularIntensity": 1,
- "ShadowIntensity": 1,
- "ShadeIntensity": 1,
- "cameraExposure": 0.7153261887420668,
- "cameraContrast": 1.6474178892241538,
- "microSurface": 0.42269274789303946,
- "reflectivityColorR": 1,
- "reflectivityColorG": 0.8453854957860789,
- "reflectivityColorB": 0.5093989525890475,
- "albedoColorR": 0,
- "albedoColorG": 0,
- "albedoColorB": 0,
- "albedoColorLevel": 1
- });
- });
- registerButtonUI("pbr", "Plastic", function() {
- setRangeValues({
- "directIntensity": 0.9971213540040931,
- "emissiveIntensity": 1,
- "environmentIntensity": 0.3685013699580344,
- "specularIntensity": 1,
- "ShadowIntensity": 0.975444802830091,
- "ShadeIntensity": 0.8020323934380749,
- "cameraExposure": 0.7586792910900708,
- "cameraContrast": 1.5823882357021477,
- "microSurface": 0.8562237713730799,
- "reflectivityColorR": 0.05,
- "reflectivityColorG": 0.05,
- "reflectivityColorB": 0.05,
- "albedoColorR": 0.20592723615301922,
- "albedoColorG": 0.942929976069088,
- "albedoColorB": 1,
- "albedoColorLevel": 1
- });
- });
-
- registerRangeUI("pbr", "indiceOfRefraction", 0, 2, function(value) {
- pbr.indexOfRefraction = value;
- }, function() {
- return pbr.indexOfRefraction;
- });
-
- registerRangeUI("pbr", "alpha", 0, 1, function(value) {
- pbr.alpha = value;
- }, function() {
- return pbr.alpha;
- });
-
- registerRangeUI("pbr", "directIntensity", 0, 2, function(value) {
- pbr.directIntensity = value;
- }, function() {
- return pbr.directIntensity;
- });
-
- registerRangeUI("pbr", "emissiveIntensity", 0, 2, function(value) {
- pbr.emissiveIntensity = value;
- }, function() {
- return pbr.emissiveIntensity;
- });
-
- registerRangeUI("pbr", "environmentIntensity", 0, 2, function(value) {
- pbr.environmentIntensity = value;
- }, function() {
- return pbr.environmentIntensity;
- });
- registerRangeUI("pbr", "specularIntensity", 0, 2, function(value) {
- pbr.specularIntensity = value;
- }, function() {
- return pbr.specularIntensity;
- });
-
- registerRangeUI("pbr", "cameraExposure", 0, 2, function(value) {
- pbr.cameraExposure = value;
- }, function() {
- return pbr.cameraExposure;
- });
- registerRangeUI("pbr", "cameraContrast", 0, 2, function(value) {
- pbr.cameraContrast = value;
- }, function() {
- return pbr.cameraContrast;
- });
-
- registerRangeUI("pbr", "microSurface", 0, 1, function(value) {
- pbr.microSurface = value;
- }, function() {
- return pbr.microSurface;
- });
- registerRangeUI("pbr", "reflectivityColorR", 0, 1, function(value) {
- pbr.reflectivityColor.r = value;
- }, function() {
- return pbr.reflectivityColor.r;
- });
- registerRangeUI("pbr", "reflectivityColorG", 0, 1, function(value) {
- pbr.reflectivityColor.g = value;
- }, function() {
- return pbr.reflectivityColor.g;
- });
- registerRangeUI("pbr", "reflectivityColorB", 0, 1, function(value) {
- pbr.reflectivityColor.b = value;
- }, function() {
- return pbr.reflectivityColor.b;
- });
- registerRangeUI("pbr", "albedoColorR", 0, 1, function(value) {
- pbr.albedoColor.r = value;
- }, function() {
- return pbr.albedoColor.r;
- });
- registerRangeUI("pbr", "albedoColorG", 0, 1, function(value) {
- pbr.albedoColor.g = value;
- }, function() {
- return pbr.albedoColor.g;
- });
- registerRangeUI("pbr", "albedoColorB", 0, 1, function(value) {
- pbr.albedoColor.b = value;
- }, function() {
- return pbr.albedoColor.b;
- });
- registerRangeUI("pbr", "albedoColorLevel", 0, 1, function(value) {
- pbr.albedoTexture.level = value;
- }, function() {
- return pbr.albedoTexture.level;
- });
-
- registerButtonUI("pbr", "Toggle Skybox", function() {
- hdrSkybox.setEnabled(!hdrSkybox.isEnabled());
- });
- registerButtonUI("pbr", "Color Grading", function() {
- pbr.cameraColorGradingTexture = pbr.cameraColorGradingTexture ? null : colorGradingTexture;
- });
- return pbr;
- }
|