refraction and reflection.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. var createScene = function () {
  2. var scene = new BABYLON.Scene(engine);
  3. var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 10, BABYLON.Vector3.Zero(), scene);
  4. var material = new BABYLON.StandardMaterial("kosh", scene);
  5. var sphere1 = BABYLON.Mesh.CreateSphere("Sphere1", 32, 5, scene);
  6. var light = new BABYLON.PointLight("Omni0", new BABYLON.Vector3(-17.6, 18.8, -49.9), scene);
  7. camera.setPosition(new BABYLON.Vector3(-15, 3, 0));
  8. camera.attachControl(canvas, true);
  9. // Sphere1 material
  10. material.refractionTexture = new BABYLON.CubeTexture("textures/TropicalSunnyDay", scene);
  11. material.reflectionTexture = new BABYLON.CubeTexture("textures/TropicalSunnyDay", scene);
  12. material.diffuseColor = new BABYLON.Color3(0, 0, 0);
  13. material.invertRefractionY = false;
  14. material.indexOfRefraction = 0.98;
  15. material.specularPower = 128;
  16. sphere1.material = material;
  17. material.refractionFresnelParameters = new BABYLON.FresnelParameters();
  18. material.refractionFresnelParameters.power = 2;
  19. material.reflectionFresnelParameters = new BABYLON.FresnelParameters();
  20. material.reflectionFresnelParameters.power = 2;
  21. material.reflectionFresnelParameters.leftColor = BABYLON.Color3.Black();
  22. material.reflectionFresnelParameters.rightColor = BABYLON.Color3.White();
  23. // Skybox
  24. var skybox = BABYLON.Mesh.CreateBox("skyBox", 100.0, scene);
  25. var skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);
  26. skyboxMaterial.backFaceCulling = false;
  27. skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("textures/TropicalSunnyDay", scene);
  28. skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
  29. skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);
  30. skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
  31. skyboxMaterial.disableLighting = true;
  32. skybox.material = skyboxMaterial;
  33. return scene;
  34. }