Wingnut

The Wingnut Chronicles

Recommended Posts

'Twas the frame beforeRender, and all through the scene,
Not a vertex was indexed, the canvas was clean.

Observers were hung on event loops with care,
In hopes that St. Deltakosh... soon would grow hair.

The cameras were nestled on Y-offset peds,
The lights well-positioned in greens blues and reds.

A box and a sphere and a tube with a cap,
A torus, a plane, and a fresh-baked light map.

When out of the engine arose such a clatter,
It woke-up young Davrous to check on the matter.

Away to the Windows... he flew in a flash,
To resize the viewport and refresh the cache.

The specular shined on a heightMap of snow,
The includedMeshes were starting to show.

When what to his wondering eyes did appear,
A Wingy-made bobsled and 12-pack of beer.

The BJS framework so lively and quick,
Was rendering elves each with onPointer pick.

They all went to work wearing new Christmas formals,
Connecting the verts and adjusting the normals.

A beautiful pano on isBackground Layer,
And cool twinkle lights... it just couldn't be gayer.

This holiday playground was now well-awake,
So Davrous relaxed with a nice Christmas cake.

More rapid than beagles the elves made their fame,
They yelled at observers, and called them by name:

"OnPointer, onReady, onActivate true."
"onAfterUnbind, onBeforeRender, too!"

The scene came to life at a fine framerate speed,
The particle snows had a great random seed.

The post-process pipe added gorgeous effects,
The boys at Three JS were all nervous wrecks.

Ol' Davrous and DK and all of the puppies,
Were dancing and singing like freshly-fed Guppies.

And Davrous, he smiled and he started to sing...
“Merry Christmas to all, and to all a good ping!”

:)  Happy holidays!

Share this post


Link to post
Share on other sites

@Wingnut : great Wingy!! And congrats on all those anniversaries - and of course Happy Birthday!! :)

Been a funny last 48 hours. An hour ago a Canada Post parcel delivery guy came to the door - full white beard and red Santa cap and an armful of parcels. Gave a new meaning to "going postal":lol:

2 hours ago, Wingnut said:

The BJS framework so lively and quick,
Was rendering elves each with onPointer pick.

Last night, I got to see the "Blue Lady" dancing on a gaming PC - NVidia GTX 970 driving one of these monitors - samba dancing at 144fps!! The lady never looked so good :D

(gryff has to see if he can get a quick letter off to Santa)

And to repeat - Happy Birthday - and as the song goes : Have a Drink on Me !!

cheers, gryff :)

Share this post


Link to post
Share on other sites

Thanks guys!

Okay, back to play... http://www.babylonjs-playground.com/#1YOCO9#19

Here, I have meshImpostor on heightMap, sphereImpostor on bobsled.

Then, I drop @RaananW-created joint-cloth (low rez) atop.  Easily see sphereImpostor around bobsled.

I needed to change cloth particleImpostor... to sphereImpostor (only sphereImpostor can interact with ground meshImpostor - normal, to date).

Perhaps drag-pan camera UNDER ground, and then atop ground again... to make cloth "joint-lines" appear.

My POSSIBLE "big plan" is to position some Raanan "joint-cloth"... on the bottom of the bobsled.  Then adjust joint limits/springs/etc... to make "soft-body" simulation.

(Put semi-flexible saucer-of-spheres... under bobsled.)   Magic carpet.  :)

Thrust:  Control-arrows & control pgUp/pgDwn (for rotating), shift-arrows and shift pgUp/pgDwn (for translating).  Same for number pad - many thrust keys active... all must hold SHIFT or CONTROL.  No ALL STOP keys active, yet.  Single sphereImpostor on bobsled... will make thrusting "strange", of course.  Bobsled will roll like ball.  :)  MUST use sphereImpostor on bobsled at this time... because meshImpostor on ground only honors sphereImpostors. 

Perhaps click on canvas before control/shift arrow/numpad thrusters will work.  Holding-down thrust keys... a-ok... sometimes needed to climb steep hills with sphereImpostor.  :)  Non-cloth version is much faster.

And remember... take camera beneath ground for a moment, then above again... to make joint-cloth lines appear.  Then go thrusting... kind of fun.

Lots to learn, here.  Sorry for fat/disorganized PG.  WIP... mad scientist at play.  heh.

Share this post


Link to post
Share on other sites

http://www.babylonjs-playground.com/#ZP0N2#3

(allow 10 secs to... um... get settled-in)  :)  Odd lighting changes with camera beta, too, possibly related to depth rendering.

Hi guys!  Here's some early snow-globe testing, using @jerome's SPS particle collisions.  Intersects are working fine, but the restitution engine is not taking the center box .rotation into consideration.  Understandable and expected.  Most snow globes have no animated things inside.  :)  Fun! 

I have future hopes for snowplowing and snowblowing, too.  :)  Road grading and bulldozer ops, as well.  And maybe someday, as a thin top layer for sledding hills. 

Share this post


Link to post
Share on other sites

Hi again.  Back to bobsleds.  :)  We know that CannonJS meshImpostors (the sledding hill) can only interact-with sphereImpostor'd mesh.

So, what about a compoundImpostor made entirely of spheres?

http://www.babylonjs-playground.com/#1YOCO9#25

Objective:  Finding a good "impostor surface" for the bottom of our bobsled.

Some of you may remember another forum friend... who built jetskis/watercraft.  I believe he faced this same issue... what to put on bottom of watercraft/waverunner... to allow "wave jumping".  (Via waves created in the same way as my bumpy sledding hill heightMap, and possibly animated.  An animated meshImpostor heightMap is REALLY bad-performing.  I wonder how successful our friend was.)

I am not animating the bumps of the sledding hill. I use 50 spheres/sphereImpostors in my "sledding pad" compoundImpostor.  I think I can use as few as 6 spheres, positioned precisely on the bottom of the bobsled (still compounded together).

And then there is parenting, instead of compounding.  Currently, my 50 sphere compound isn't staying above ground very well.  A couple bounces and tumbles, and it is gone.  More experiments and fun to come.  Experiment at will, using these playgrounds, and show'n'tell results... if you wish.  Most work is happening in lines 1572-1597 area.  Party on!

Share this post


Link to post
Share on other sites

Hi again, @thiendv.  Good to hear from you again.

For camera -> mesh collisions, be sure to set scene.collisionsEnabled = true; and camera.checkCollisions = true;   (as seen in playground collisions demo).  You might also want to increase the values of camera.ellipsoid (the camera's spherical collider area).  Just some ideas.  Good luck.

 

@NasimiAsl   :)   Hi Naz's son!  Become as smart and creative as your dad, okay? 

Funny story, though.  When I first make post before, I started typing "Hi", but after "H"... my cursor disappeared (forum software or firefox bug).  So, I saved message with only 'H' in the post.  Just one letter...  H.  :)

Then I chose EDIT... and finished post.  But, for... 10 minutes... the newest post on this thread... was only 'H'.  :)  Naz, your son... replied before I finished full post.  He replied properly and well... with 'N'.  hehe. 

That's funny.  Young Naz is already a genius, perhaps.  And perhaps a comedian, too.  Quite interesting.  I post 'H', he posts 'N'.  Smart kid.  :)  Party on.

Share this post


Link to post
Share on other sites
7 hours ago, Wingnut said:

Hi again, @thiendv.  Good to hear from you again.

For camera -> mesh collisions, be sure to set scene.collisionsEnabled = true; and camera.checkCollisions = true;   (as seen in playground collisions demo).  You might also want to increase the values of camera.ellipsoid (the camera's spherical collider area).  Just some ideas.  Good luck.

 

@NasimiAsl   :)   Hi Naz's son!  Become as smart and creative as your dad, okay? 

Funny story, though.  When I first make post before, I started typing "Hi", but after "H"... my cursor disappeared (forum software or firefox bug).  So, I saved message with only 'H' in the post.  Just one letter...  H.  :)

Then I chose EDIT... and finished post.  But, for... 10 minutes... the newest post on this thread... was only 'H'.  :)  Naz, your son... replied before I finished full post.  He replied properly and well... with 'N'.  hehe. 

That's funny.  Young Naz is already a genius, perhaps.  And perhaps a comedian, too.  Quite interesting.  I post 'H', he posts 'N'.  Smart kid.  :)  Party on.

@ Wingnut, i fix it, but i use check collision when i export camera from 3dsmax: babylon properties. Now i want to fix camera high the same eyes. I don't want camera move lower . Thanks

Share this post


Link to post
Share on other sites

Good deal, @thiendv.  Keep working hard, you will find solutions. I'm in "screw-off mode" for the holidays... so I am playing.  :)

Bobsled fans... here's a shitty ride down MeshImpostor Hill.  One sphereImpostor for bobsled, and I only bind bobsled.position... to the sphereImpostor.  If I attach sphereImpostor rotation -> bobsled.rotation, then bobsled would spin over and over as sphere rolled down the hill.  Same thing would happen with parenting the sphere to the bobsled.

Perhaps, by constantly sampling the face normal under the sphere... I could tilt the bobsled to match it.  Not sure how to do that, yet. 

I would really like to have a 4-sphere impostor-combo, (one for each sled runner) but, not easy.  The correct way to connect the 4 spheres together, is with joints, I suspect.  But the modified cloth tests (shown in previous posts), which are spheres connected by joints... did poorly in tests so far. [22] [23] [24]  Potential ahead, though. 

It seems... I need a combination distance and hinge joint.  A distance setting... so carpet will maintain rectangle shape, and hinges to allow carpet to conform to hill contours (within limits). 

I wonder... what having two different types of joint... applied between 2 bodies... would do.  I suppose the joints would fight each other, somewhat.  But that is what is needed.  Also seen... the less spheres, the faster the sled ride.  Understandable.

Playground 23 (jointmaker func @ line 1605, called repeatedly from line 1638) is a hinge-joint magic carpet (array of sphereImpostors).  As you can see, it slides nicely against meshImpostor ground, but the spheres are allowed to have ANY distance from each other, and thus... the carpet loses its rectangular shape.  That's why a combination hingeJoint AND distanceJoint... might be interesting.

Playground 25 tests the deprecated CompoundImpostor method, with an array of sphereImpostors.  Not good.  Violent bounce, fall-thru problems.

The latest playground (shitty ride) has SOME fall-thru-ground issues.  Not too bad, though.

The shift/control cursor keys for thrusters ARE attached to the sphere, but the thrust controller (lines 3-1093) was created for a BOX impostor, and needs refactoring to work with sphereImposter.  Still, shift cursors WILL affect movement of bobsled... but not predictably.

Oh how I wish boxImpostors interacted with meshImpostors, too.  Currently, only sphereImpostors can interact with meshImpostors.  Still, fun!!!  Fat playground.  Messy messy messy. :)

Also playing with some SPS-based tinsel garland...

http://www.babylonjs-playground.com/#1LIVJD#8 (starting with a stolen PG from another)  Goin' ok so far.  Need better math.  :)

Share this post


Link to post
Share on other sites

Oh my God!  Check this out...

https://github.com/BabylonJS/Babylon.js/pull/1628

My FIRST-EVER commit to core!  Holy crap, Batman!

I'm SO proud!  (But still SO scared!)

Be warned.  I edited Math.ts.  You all should realize that... a child just touched an Airbus A300 airliner with over 400 people aboard!  Expect delays from in-flight explosions!

Maybe they won't ever re-compile to JS, and it will all be okay, and I can quit chewing my nails incessantly... soon.  :unsure:

Share this post


Link to post
Share on other sites

Hey gang, here's my early attempts at a LiteBrite!   http://www.babylonjs-playground.com/#18TRYT#17

(Started from another person's playground demo)

Warning:  Firefox HATES this.  Not only does Firefox refuse to render the black "box" back-panel, but it also reports shader errors, bogs-down badly, and ALMOST crashes.

Warning #2:  Internet Explorer ALSO hates this, but not as much.  It also lost the black back-panel box, but IE doesn't crash quite so bad, this time.

This PG has a powerful little func at the top.  It clones a sphere, clones a point light, clones a material, positions the sphere clone near the back panel ( which is missing), and adds the sphere clone to the highlightLayer (for some outer glow effect).  Scroll down a bit, and you will see the drawing "array".

Firefox was fine until I put the "H" on the drawing area.  Then it lost the "box".  IE was fine until I got to the "E" in "NEW"... and then IT lost the back panel (box), too.  Weird.  Still learning and testing.  The black box is still there, according to bounding box.  But, it lost its substance, somehow.  heh

Determine why this PG is SO CRASHY, and you win a brand new LearJet!  (Contest void where prohibited by poverty.)  ;)

PS:  Don't activate lines 80 & 90 (wrap the generator in a renderLoop)... because... that will generate SO MANY mesh and light clones... that your browser will die from a brain tumor.  Just don't do it (unless you love pain).  :)

Share this post


Link to post
Share on other sites

Hi guys.  I'm still struggling with the LiteBrite demo.  http://www.babylonjs-playground.com/#18TRYT#24

Notice the console looks good, the black "box" behind the 2 lights... looks good.  Most things are working fine (except line 117 but that's a problem for later).

Now, Firefox users... in line 65, add one more "o" somewhere in that string.

For me, in Firefox... that third light bulb causes a "big dump" to console.  It looks like... perhaps... specularTerm is failing in the shader.

In Internet Explorer... I never get a shader failure dump-to-console, but somewhere around the 86th light bulb, the black box loses its material, just like in Firefox.

http://www.babylonjs-playground.com/#18TRYT#25

(add one "o" to line 76, and the box material dies, in IE)

 

It is not the highlightLayer causing the problem.  That is turned-off for each light bulb... at line 34.

Does anyone have any ideas why this is happening?  Thanks!  Party on!

Share this post


Link to post
Share on other sites

That went well.  hehe.  Same excitement as my "playground features" post... generated.  :D

Okay, hi guys/gals.  I have been thinking about Canvas 2d system... its abilities to draw diagrams that are reffed in the BJS docs files.  Diagrams to help people understand BJS things, no matter their native language.  And... I think they should be stored as playgrounds.

This brings-up the thought of reserved or locked playground "series" URLS. 

Also, username/password control over EDITING of those playgrounds.

Also, allowing over-write of the same URL.  (So when a "docs diagrammer" needs to change a docs diagram, it is written-back to the same playground url/fragment.)

Naturally, a "doc-a-gram" (a diagram for docs)... is going to have SOME text.  But what we want to TRY-for... is a symbols system.  A simple symbol would be a little camera icon, or a light icon.  Eventually, we might establish a SCENE symbol, and an ActionManager symbol, and a particles symbol, etc etc.  Then we re-use these standard Canvas2D "icons" over and over... in our new doc-a-gram system.

Of course, our doc-a-grams ("dags"?) will be dynamically generated with JS scene code, same as any other Canvas2d scene.  BUT... there is a future possibility... that a "dag" COULD "query" the current framework that is running the playground, and "derive" a diagram.  A "live dag" like this... will automatically update itself... as BJS evolves... because it is "gleaned" or "queried" from the currently-running PG framework.  Live dags!  Diagrams that are drawn from "current state"... current version... THIS version.  I love that idea.  And it sure beats the maintenance nightmare of static 2d diagrams for our docs.

Canvas2d needs to become solid (already accomplished, essentially)... and, in early versions of PG-based docs diagrams (dags)... we should not use advanced features of Canvas2D.  We will want to keep these Canvas2D diagrams... simple... in the beginning.  PACK them with information... but don't use overly advanced canvas2d features... yet.  We're still experimenting with the CONCEPT of using Canvas2d to generate diagrams for docs.  Let's not lean-on @Nockawa at all, if we can avoid it.  He's deep in-dev of the next layer for C2d... the GUI lib.  Our BJS "Swingset"!  (Java coders got that "Swing" word-play.)  :) 

We COULD work-on/think-about... our "symbols".  Little icons and medium-sized icons... one for mesh, one for light, one for cam, one for post process/effects, one for shader, one for SpriteManager, one for...  you get the idea.  The BJS icons library... the beginning of our "dag" system of dynamically-generating (internationalized) helper diagrams for our docs system.  YAY!  COOL!

Thoughts, anyone?  Happy new year, for those who recognize such.  Party on!

Share this post


Link to post
Share on other sites
15 hours ago, Wingnut said:

Happy new year, for those who recognize such.

 @Wingnut I guess Wingy you are one of those Yankees who has  never "first footed".- it is Celtic. Not all that Times Square pseudo stuff!

I've been kicked out of more New Year's parties to be the first person across the doorstep carrying a lump of coal than you can imagine :o

cheers, gryff :)

Share this post


Link to post
Share on other sites

@Wingnut : And by Wingy's special request : First Footing - an explanation :) 

There are different gifts you can carry. but I always carried a piece of coal - a symbol of warmth which is ironic. You have to be outside  the house before midnight  and wait until midnight past before knocking and entering - in the cold!!

Legend has it that you had to be a "dark male" because it was believed that a blonde stranger arriving on your door might have a big axe - an invading Viking  - unlikely to bring the best to a household:o

cheers, gryff :)

Share this post


Link to post
Share on other sites

Thanks Gryff!  Interesting.

Wingy went "out there", stood on a soap box, and preached "feelings" for a little while.

Scary out there.  :D  I shouldn't go out there.  I can be kind of a prick.  :o

Hi there, LiteBrite and Bobsled.  How have you guys been?  heh.  Bobsled might turn into Space Taxi 3D... my first ever actual game.  Mister bobsled will need the 24 thruster ports from my flying bedframe (each port has 4 particleSystems on it, holy crap!  96 total.)  Flying Bobsled!   "Hey Taxi"  :)

Did anyone just hear gunshots, or bullets hitting the sides of this thread?  Huh?  I'm a little jittery.  heh.  I think I'll join my dog... and hide under my bed... for a while.  I wonder why there is a chunk of coal under my bed, here.  :)

Share this post


Link to post
Share on other sites

Hi girls.

http://www.babylonjs-playground.com/#1BTGPV#8

Here's some early attempts at "harvesting" things from a currently running scene... to be used in potential dynamic diagrams or live-help.

I used Object.keys(scene) to gather all scene properties, and then used simpleton matching... to gather all property names with "Observ" in them, and list them to an add-on DIV.  (It won't find "getMesh", though.  Not sure why, yet.  Prolly need some regexp.)

I could have created a canvas2d help-panel... with that list of scene-based observers.  IntelliSense, meet your new best friend, IntelliHelp.  :)

Later, when even MORE observers are put on the Scene object, this "gleaner" (and diagram generator)... would automatically update.  I love that idea.  I love gleaning help data... live.  It's a docs diagram maintainer's dream come true.

I'm not sure what the future of this... holds, if anything.  Just thinkin'.  Party on.

Share this post


Link to post
Share on other sites

Hello @Wingnut I try program for my app, and i have nice result. Now i want to open and close Door in my house by click mouse to my door. 

I try it by : rorate my Door but i don't move Pivot , it's main reason my Door rotation not good

and i try by create animation in 3Dsmax i don't know how to read animation frame.

Can you explain for me. Thanks for your help

 

Share this post


Link to post
Share on other sites
20 hours ago, dbawel said:

@thiendv -

Parent to an object which pivots where you want. And then animate the parent. Sounds like you already do this. Create a imple PG scene, as it appears to be an event issue.

DB

Can you help me close my Door when i click door again. Thanks!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.