• Content Count

  • Joined

  • Last visited

  • Days Won


JackFalcon last won the day on March 15

JackFalcon had the most liked content!

About JackFalcon

  • Rank
    Advanced Member

Profile Information

  • Location

Recent Profile Visitors

2,128 profile views
  1. John is correct. Also, an ah-ha moment was reading the principles in the contributing.md of the source code: ## Golden rules **Babylon.js** is built upon 3 golden rules: 1. You cannot add code that will break backward compatibility 2. You cannot add code that will slow down the rendering process 3. You cannot add code that will make things complex to use Cheers,
  2. JackFalcon

    BabylonJS on STEAM -> BOXiGON~V1

    Hello awesome HTML5Dev community... NEWS-FLASH: BABYLONJS is on STEAM!!! To show appreciation for BABYLONJS and HTML5GAMEDEVS here is a look at the "Special Thanks" in the credits: The game is called BOXiGON~V1, on STEAM: https://store.steampowered.com/app/842490/BOXiGON/ We look forward to giving back to the community with tips to support others in the SAME-QUEST! So, in a few weeks, we'll post a retrospective: How To Get Your BABYLONJS App on STEAM. As documentation of the mix of tools, the steps, and best-practices we used. Also, we will PR LINK for BABYLONJS.com, and later this quarter, convert the ElectronJS app into FREE WEB DEMO. Where anyone can see the code and kick the tires. Are you a source contributor and would like to add your name to credits? We would love that! Or if you are listed above and would like a name or handle change? Just let us know. LAST, we care what you think. So drop us a note! There are many more steps, as you probably know, and we hope for a couple more BOXiGON's on different platforms next year. V2 is in the works and we are just getting started! See you around. Congratulations BABYLONJS and Thank you, ~BOXiGON-TEAM-. NetCinematics
  3. JackFalcon

    BABYLON.Augmented Reality ...

    This project is scheduled to continue in 2019. Need a good app 1st (check) then AR/VR as new version. : )
  4. JackFalcon

    Combine Babylon.js with Pixi.js

    @SinhNQ, 1) Interpolate range and use callback state to apply state to BJS, is how. Really surprised how well that works. Made transition myself after all of the above ANIMATION REVIEW. 2) Looking into GSAP license, at that time, it was free "non-commercial". Tricky. Perhaps they changed it? : )
  5. JackFalcon

    Combine Babylon.js with Pixi.js

    2D + 3D Hybrid approach is really cool! Might we call it 4D or 5D? HYBRID MIXES like this can be HIGHLY-EFFECTIVE. Didn't know Pixi.js + Babylon could work, really intriqued! But DID HAVE SUCCESS mixing: Babylon + GSAP AND Babylon + jQuery! (surprize!) Don't laugh. Stop laughing. : ) There is a reason... for mixing Babylon and jQuery. jQuery.animate turned out to be just as good as GSAP(if not better).... and FREE. : ) Most Importantly: integration is lightweight and seamless. Example shortly, in upcoming BJS release. Can't wait to try this... +1 LIKE for BJS+Pixi.js && HYBRID~5D. Jack : )
  6. JackFalcon

    How to publish HTML5 games on facebook?

    ~Will give this a try...
  7. JackFalcon

    Sharing My Music and Sound FX - Over 1000 Tracks

    Hey Everyone, please consider LISTENING to AUDIO by Eric Matyas when you get a chance. He is doing GREAT work. AND is a huge benefit to this awesome community. Eric was instrumental in a recent creation to get BabylonJS on STEAM! So please look into Eric's work, he deserves it!
  8. JackFalcon

    Yaw Pitch Roll

    It works. Delta & crew helped on step 3-4 (above). : ) That world inversion syntax: /*CONVERT WORLD COORDINATES INTO LOCAL*/ var invertParentWorldMatrix = worldObj.getWorldMatrix().clone(); invertParentWorldMatrix.invert(); var local_position = BABYLON.Vector3.TransformCoordinates(pickPointNext, invertParentWorldMatrix); Thinking, pickPointNext is where the vector3(0,offset,0) goes. Maybe it helps? Could understand world inversions better! Awesome how matrix math works .... : )
  9. JackFalcon

    Sharing My Music and Sound FX - Over 1000 Tracks

    @Eric Matyas, A falcon digs your archives, and finds a perfect track! It is great for upcoming production of a 3D PUZZLE GAME... Is there option for attribution AND paid license... DM-me? : ) Thank you for your music service!
  10. JackFalcon


    @Deltakosh and @brianzinn ... the best. Thanks for the insight and the code links! : )
  11. JackFalcon


    Here it is (in a nice little pattern): scene.registerBeforeRender(function someCallback() { if(done){ scene.unregisterBeforeRender(someCallback); } }); solved.
  12. JackFalcon


    Ok, maybe got it... scene.unregisterAfterRender(unregister);
  13. JackFalcon


    Hi. Too easy. Anyone have a link to an example of how to deregister a beforeRender or afterRender callback? looking for a good pattern... Or unregister...? Thx.
  14. JackFalcon

    Explosion scene for a game

    Used this is a great place to start... https://doc.babylonjs.com/snippets/writing2 Adapted to extend range (supernova effect)[loops itself] and added fader fadeout -> cool things. var blueBoom; anmExplodeShader = function(){ BABYLON.Effect.ShadersStore["customVertexShader"]= "\r\n"+ "precision highp float;\r\n"+ "// Attributes\r\n"+ "attribute vec3 position;\r\n"+ "attribute vec3 normal;\r\n"+ "// Uniforms\r\n"+ "uniform mat4 worldViewProjection;\r\n"+ "uniform float time;\r\n"+ "void main(void) {\r\n"+ " vec3 p = position;\r\n"+ " vec3 j = vec3(0., -1.0, 0.);\r\n"+ " p = p + normal * log2(1. + time) * 25.0;\r\n"+ " gl_Position = worldViewProjection * vec4(p, 1.0);\r\n"+ "}\r\n"; BABYLON.Effect.ShadersStore["customFragmentShader"]="\r\n"+ "precision highp float;\r\n"+ "uniform float time;\r\n"+ "uniform float fader;\r\n"+ "void main(void) {\r\n"+ // " gl_FragColor = vec4(1.0,0.0,1.0,1.0);\r\n"+ // " gl_FragColor = vec4(0.2,0.0,1.0,1.0);\r\n"+ " gl_FragColor = vec4(0.2,0.0,1.0,fader);\r\n"+ "}\r\n"; var shaderMaterial = new BABYLON.ShaderMaterial("shader", scene, { vertex: "custom", fragment: "custom", }, { // needAlphaBlending : true, attributes: ["position", "normal", "uv"], uniforms: ["world", "worldView", "worldViewProjection", "view", "projection"], needAlphaBlending: true }); // " gl_FragColor = vec4(1. - log2(1. + time)/100., 1. * log2(1. + time), 0., 1. - log2(1. + time/2.)/log2(1. + 3.95));\r\n"+ shaderMaterial.backFaceCulling = false; blueBoom = BABYLON.MeshBuilder.CreateSphere("blueBoom", {diameter:100}, scene); blueBoom.convertToFlatShadedMesh(); blueBoom.material = shaderMaterial; blueBoom.material.alphaMode = 2; var time = 0.; var fader = 1; scene.registerBeforeRender(function() { if(time<50) { blueBoom.material.setFloat("fader", fader); blueBoom.material.setFloat("time", time); time +=0.1; //fadeout over time if(time > 30){ blueBoom.material.setFloat("fader", fader); fader -=0.01; // blueBoom.material.alpha -= 0.5; // console.log('ALPHA: ',blueBoom.material.alpha) } } else { blueBoom.dispose(); } }); Also rotate the camera to look down into the y axis... pretty cool low poly cartoon explosion effect.
  15. JackFalcon

    Performance Optimization tips.

    rudimentary stats... TEST DESCRIPTION: rotating parent with gradual increasing number of children(30,60,90) for each rotation, step-interpolation = 0.02, on a closed-circuit track. BASELINE NO-PERF-OPS 3 CONTROL-TESTS: TIMESTART: START-ANIMATION TIMESTOP: END-ORBIT = 1867 TIMESTART: START-ANIMATION TIMESTOP: END-ORBIT = 4294 TIMESTART: START-ANIMATION TIMESTOP: END-ORBIT = 6724 OP-TEST-1 visibility = 0 3 COMPARISON-TESTS: TIMESTART: START-ANIMATION TIMESTOP: END-ORBIT = 1937 TIMESTOP: END-ORBIT = 4237 TIMESTOP: END-ORBIT = 4679 OP-TEST-1 RESULTS: Within variance, visibility = 0 for hidden mesh, reduces orbit time ~2 seconds on third rotation (HOO-RAY). QUESTION: which is better visibility or setEnabled(false)? Bird should read source code, or... TEST: replace vis =0 to setEnable(false) in the same loops... TIMESTART: START-ANIMATION TIMESTOP: END-ORBIT = 1917 TIMESTOP: END-ORBIT = 4227 TIMESTOP: END-ORBIT = 4778 RESULTS: Interesting - visibility is slightly faster (within variance). Didn't expect that. Bird should read source code. NOTE: couldn't use setElement(false) at parent level because in context need parent to remain visible, and only children hidden. NEXT-STEPS: Not going to do LOD test, sticking with simple visibility op for the moment. Instances not applicable. This is solved. Maybe more PERFOPS later. Hope this helps someone.