addpbrmetallicroughness.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. window.preparePBRMetallicRoughness = function() {
  2. var pbr = new BABYLON.PBRMetallicRoughnessMaterial("pbrmetallicroughness", scene);
  3. pbr.baseTexture = new BABYLON.Texture("/Playground/textures/amiga.jpg", scene);
  4. pbr.baseTexture.uScale = 5;
  5. pbr.baseTexture.vScale = 5;
  6. pbr.metallic = 0.5;
  7. pbr.roughness = 0.1;
  8. // Uncomment for PMREM Generation
  9. var hdrTexture = new BABYLON.HDRCubeTexture("/Playground/textures/environment.hdr", scene, 512);
  10. // var hdrTexture = new BABYLON.HDRCubeTexture("textures/hdr/environment.hdr", scene, 128, false, true, false, true);
  11. // Skybox
  12. var hdrSkybox = scene.createDefaultSkybox(hdrTexture, true);
  13. hdrSkybox.setEnabled(false);
  14. registerRangeUI("pbrmetallicroughness", "alpha", 0, 1, function(value) {
  15. pbr.alpha = value;
  16. }, function() {
  17. return pbr.alpha;
  18. });
  19. registerRangeUI("pbrmetallicroughness", "metallic", 0, 1, function(value) {
  20. pbr.metallic = value;
  21. }, function() {
  22. return pbr.metallic;
  23. });
  24. registerRangeUI("pbrmetallicroughness", "roughness", 0, 1, function(value) {
  25. pbr.roughness = value;
  26. }, function() {
  27. return pbr.roughness;
  28. });
  29. registerRangeUI("pbrmetallicroughness", "baseColorR", 0, 1, function(value) {
  30. pbr.baseColor.r = value;
  31. }, function() {
  32. return pbr.baseColor.r;
  33. });
  34. registerRangeUI("pbrmetallicroughness", "baseColorG", 0, 1, function(value) {
  35. pbr.baseColor.g = value;
  36. }, function() {
  37. return pbr.baseColor.g;
  38. });
  39. registerRangeUI("pbrmetallicroughness", "baseColorB", 0, 1, function(value) {
  40. pbr.baseColor.b = value;
  41. }, function() {
  42. return pbr.baseColor.b;
  43. });
  44. registerRangeUI("pbrmetallicroughness", "emissiveColorR", 0, 1, function(value) {
  45. pbr.emissiveColor.r = value;
  46. }, function() {
  47. return pbr.emissiveColor.r;
  48. });
  49. registerRangeUI("pbrmetallicroughness", "emissiveColorG", 0, 1, function(value) {
  50. pbr.emissiveColor.g = value;
  51. }, function() {
  52. return pbr.emissiveColor.g;
  53. });
  54. registerRangeUI("pbrmetallicroughness", "emissiveColorB", 0, 1, function(value) {
  55. pbr.emissiveColor.b = value;
  56. }, function() {
  57. return pbr.emissiveColor.b;
  58. });
  59. registerRangeUI("pbrmetallicroughness", "baseTextureLevel", 0, 1, function(value) {
  60. pbr.baseTexture.level = value;
  61. }, function() {
  62. return pbr.baseTexture.level;
  63. });
  64. registerButtonUI("pbrmetallicroughness", "Toggle Skybox", function() {
  65. hdrSkybox.setEnabled(!hdrSkybox.isEnabled());
  66. });
  67. return pbr;
  68. }