Wingnut

Members
  • Content count

    5,014
  • Joined

  • Last visited

  • Days Won

    104

Wingnut last won the day on April 9

Wingnut had the most liked content!

About Wingnut

  • Rank
    Advanced Member
  • Birthday 12/15/1957

Profile Information

  • Gender
    Male
  • Location
    Bessemer, MI, USA
  • Interests
    3D Web, CSS, HTML, Guitars, NORML, storytelling

Recent Profile Visitors

5,759 profile views
  1. Hi again, gang. Over in another thread, I went on an adventure to convert the ColorPicker GUI control (by @adam) into an "Ipod Controller". Not important. During those experiments, I learned a bit about drawing 2D "rings" and putting "hash marks" (graduations) on it, like a round speedometer backface might use. I am not yet ready to talk about placing the text numbers/nomenclature on a "gauge backface". We'll save that nightmare... for later. I once experimented-with "curving" GUI textblocks... by mapping the ADT onto spheres. https://www.babylonjs-playground.com/#11JINV#36 I also tried using extruded mesh rings, but the GUI ADT (advanced dynamic texture) wouldn't "wrap" (map) onto the extruded mesh ring... like it did for the spheres in the above PG. Extruded mesh seem to have rather "basic UVs", if any UVs exist at all. Possibly... with nice UV's on the extrudedMesh ring... hmm. We'll talk. Although the #36 gauges were somewhat easy to place text and graduation marks onto, they look strange because they are not flat. Now back to the IPOD ring method. https://www.babylonjs-playground.com/#91I2RE#66 There is a custom GUI control that draws a ring with 8 graduation/hash-marks. Take notice of lines 128-142. There is Wingnut's piss-poor inefficient hash-mark maker. As you can see by the way this makes hash-marks... it is difficult to make variable-length lines. I think the LONG-line hashes... are called "majors", and short-line hashes... "minors". I think we can work-around the majors/minors drawing issue... by using two rings with no gap between. The outer ring... all minors. The inner ring... all line-extender hashes... to make SOME minors... into majors. With me? You bet. The "extend-some-minors-so-they-become-majors"-ring... could be on the outside, or inside, depending upon how you want your gauge back-face to look. I could use some help... with efficient, tight, hash-mark drawings... on these rings. (Need help from others replacing lines 128-142 with OTHER stuff.) I believe these gauges... could help teach rotations to new users. This means we need one gauge backface-o-hashes for radians, and one for degrees. Others, feel free to try speedometers, tachometers, ANY gauges. Notice that SOMETIMES the numbers are on the outside of the hashes, sometimes on the inside. Text placement (for each major hash) could be a real challenge... and I would love to see all experiments and hear all ideas. Besides these round gauges being helpers for learning rotations, I have a personal-project need for "easy round meters". So, c'mon gang... let's get them brain juices flowing and think-up some crazy ideas, including... bending a line of GUI text (ouch)... layed-onto a FLAT circle/ring (as opposed to the "bulging circles" of my #36 sphere-meters). Bending GUI text is NOT going to be easy, if anyone decides to chase that. Use safety gear! If it can be done at all, it will, likely, require some very precise/interesting UVs on the extrudedMesh "ring".... to map the ADT onto the mesh. Hey, thanks for input/ideas, guys. Have a fine weekend, everyone.
  2. Hey ziguri... glad you found the solve. "Billboard" is sort of a strange word for "mesh look-at cam", isn't it? I think so. Can I ask... Did you do a docs search for 'lookAt' or 'look at' or something else? I'm just curious. That search would have failed to find info about billboard. I'm trying to figure a way to make billboardMode easier to find information-about. Or maybe more precise, easier to find THAT TERM and what it is used-for. I'm wondering if a new tutorial might be wise... "Aiming, Tracking, LookAts, and Billboarding" (or similar). All about making stuff aim-at or follow other stuff. - Teaches about the unwanted z-rotation problems of billboarding when nearing poles. - Tells about targets and lockedTargets. - Getting and setting directions for ALL types of nodes. Perhaps teach Up(), Forward(), and maybe POV stuff. - Teaches how to build a lockedLookAt() (when camera is the target, mesh lockedLookAt == billboardMode, right? hmm.) - Shows how to derive directions from one thing to another, and what can be done with those directions and magnitudes. - Getting distances (maybe) You know... cool aim-at junk... for dummies... like Wingnut. Thinkin' But yeah, ziguri (and anyone else), if you DID search our docs, can you tell us what words you tried? 'aim'? 'direction'? 'face'? 'lookAt'? 'towards'? *shrug*. (thx)
  3. *nod* If everything is identical, except for folder location, then it ALMOST sounds like a folder permissions/chmod issue, eh? One folder is shared, the other not, maybe? I dunno. Strange issue. Yep, we need lots of details about this one. In browser dev tools, network tab... there could be some reports (like any "permission denied" reports). Gotta check EVERYTHING for this issue... cuzzz... it's so weird. User mistake... likely. Browser software screw-up, also possible. Clear the browser cache between loading attempts, for sure. hmm. Please tell everything... platform types, browser types, webserver type, HOW tested, just... everything you feel like typing. Thx, simple_life? Oh yeah, and welcome to the forum from me, too, @simple_life... good to have you aboard!
  4. Thanks. Yeah, we're still fairly buried in snow, but headed for 50f+ today. Slush everywhere, now. I think I saw a fish swimming across the mail-person path, earlier. Appropriate to the thread starter... it "splashed" a little when it had to swim thru some "deer beans/peanuts" that were deposited there last night.... by other wildlife. Splash is cool... he doesn't mind if we talk about the weather in his thread. But, I think he draws the line at ... farm-animal love-making talk, though.
  5. Hi splash! Quick comment... this might be a perfect application for a physics engine and Babylon's cool interface/plugins for it/them. Talking about bullets... ApplyImpulse() or applyForce() commands could be directly linked to powder loads/types. Spin the bullet as needed... using rotational velocity, matching the rifling spirals of the barrel, as wanted. Muzzle velocity measuring is as easy as getLinearVelocity(), plus use it to get projectile velocity at any "time" during the flight. Gravity works just like Earth gravity, or do your shooting on the Moon or Mars, easily. Engine will automatically calculate/cause the correct parabolic-curved bullet drop, based upon velocity, bullet mass (grain), and air resistance. Nice, eh? Air resistance is NOT something calculated by the default physics engines, but the fine people who developed BJS physics plugins... created a setLinearDamping() that is PERFECT for wind resistance, and might even work for encountered-during-flight rain drops and snow flakes. These same forces/calculations (all nicely done FOR you) would apply to ANY projectile... bullet, mortar, rock... and arrows/missiles to a degree. (Finned/foiled/fletched things could be a bit rougher, needing advanced airfoil calculations, of course.). There are apropos reasons why these 3rd party physics engines all have "ball-istic" names such as... cannon, ammo/oimo, bullet, energy, etc. Just some thoughts. A playground search for setLinearVelocity, applyImpulse, physicsImpostor, etc... should bring lots of returned physics demos. Some of the PG demos haven't been updated, and still use setPhysicsState(). With a little fiddling around, they can be updated to the new mesh.physicsImpostor = something method. Hey, there's JohnK... I hope he's doin' good. Recently, he, with little help, did a complete overhaul of our tutorials and help sections, and did it marvelously. (hugs) He's so cool it's ridiculous! Anyway, yeah, Splash... I think you owe it to your brain... to consider physics engines for this endeavor. Party on!
  6. big machine animation questions

    Hi guys. I want to show Steph this goofy "SpinTo, MoveTo, ScaleTo" thing. https://www.babylonjs-playground.com/#HH1U5#72 It's weird. It uses "overloaded" little animators on all mesh (lines 2-50) and then uses a really poor "event sequencer" (lines 150-166). This is ONE way of keeping things separate. Your server can call anymesh.spin() or anymesh.moveTo() or whatever... anytime it wishes. THIS demo really needs a "scheduler". But if your server is doing the animation start-event sequencing, maybe some of those little animation funcs... might be handy for you. That video/machine looks cooooool. CNC machine or something similar? I had a relationship with a girl... one time... that had similar radical twists/bends. Ow. #69 is fun, too. No, no, not THAT kind of 69. I'm talking about PLAYGROUND 69! Oh geez, no, NOT THAT KIND of playground 69! Yikes! I better shut-up, now.
  7. A post/replies from/to @hansnolte has been moved to... http://www.html5gamedevs.com/topic/37088-loading-models-and-checking-collisions/ Sorry for any inconvenience.
  8. Loading models, and checking collisions

    Hi again, @hansnolte. Yep, you are right. Sorry about that. I was working ONLY on activating a tolerable camera (no white screen)... that showed your model. I figged you could add camera.useFramingBehavior or camera.collisionRadius yourself, once you got a working camera. https://www.babylonjs-playground.com/indexstable#1CMD3G#75 There ya go. This one uses line 28 as its collision tester. I think this is an OLD method of loading scenes/models. We have a more-modern system... called the AssetsManager. https://www.babylonjs-playground.com/#28YUR5#323 There is an assetsManager load of Suzy (with collision avoidance installed). The loader APPEARS-TO ignore any cameras or lights arriving in the .babylon file... because we are using an .addMeshTask in line 22. But I am very inexperienced using the assetsManager. Mostly, I just find/build helpful playgrounds. I'm really not sure WHAT the assetsManager meshTask does with cameras and lights that are inside a .babylon file WITH the wanted mesh. Maybe others can help teach us. The assetsManager docs tells nothing about lights and cameras (non-mesh), but maybe I need to read more carefully. I hope I was more helpful this time. Sorry again. Update: Oops. I had a little mistake in #322, so I fixed it... and changed above link to #323. (I had TWO suzy.checkCollisions = true;)
  9. Loading models, and checking collisions

    Hi gang. Welcome to the forum, Hansnolte! https://www.babylonjs-playground.com/#1CMD3G#70 There's Han's .babylon file... loaded-in from a folder at Wingnut's free github account. Lookin' good. I made a couple of cameras, even though there is already a camera... arriving within the import. Just screwin' around... havin' some fun with other people's files. I suppose we should try to turn-on the camera that arrived in the file... see if it is broken and displaying all-white-screen, as Hans has indicated. Finding/activating those in-babylon-file cameras... can be a challenge, sometimes. They land-in scene.cameras property... and scene.activeCamera, and scene.activeCameras array. Ya just never know where a camera will be... just like in real life. :x Hans, the reason for the playground error: You must have at least one camera ...happened because... the playground itself... checks for a camera in the JS code. It saw no camera being defined... because YOUR camera... was arriving inside the .babylon file. The playground can't "see" inside there, so it reported NO CAM FOUND! That's why I made a dummy camera... to fool the playground. After that... we can make our own cameras (inside the loader's onSuccess area like I did)... or let the in-file camera go active... which I haven't tried/tested, yet. Keep goofin' around, Hans... pretty soon this will all be easier. Insert console.log(anything)... in various places in the javascript... and use your browser f12 dev tools to view the console. Keep experimenting! Grab a zip of this playground... take it home... poke knitting needles into it for fun. Maybe you or some other forum user will want to activate the in-file camera... see what happens. I wonder what type of camera it is. Maybe it's a webVR Device Oriented Stereoscopic Gamepad Following Hemispheric ArcRotate Universal Anaglyph Target Cam! errr. Addition: Aw heck, let's try to find and activate that in-file cam named 'Camera'. https://www.babylonjs-playground.com/#1CMD3G#71 <== Wingnut failing to find it, even though he can see it within the .babylon file. hmm. No scene.activeCamera, no scene.activeCameras length, no scene.cameras length, and no scene.getCameraByName('Camera'). Still, Susanne looks pretty good... thru this non-existing camera. Not sure WHAT I'm doing wrong with all this. Feel free to make lots of edits, do lots more RUN's and SAVE more versions of that playground... you can't hurt anything. If you make an interesting SAVE, paste its URL here, and we'll all take a sniff... or help with a problem. Hope this helps. Party on... talk soon. PS: How many lights do I have activated in that playground scene? THREE? (2 created, one arriving) Wow! I'm an idiot! Expect a tan!
  10. Thanks Raggar - for rQuat info! Delta: Yeah, I don't see that error report in my FF. hmm. Thx for the verification. (junky browser, but still blocks ads).
  11. Yeeeah, and ANYTHING that is an ancestor of NODE... has an .animations property... but that's really just a storage/toy box. Animation objects can be put nearly anywhere, and animate anything, from afar. (I think).
  12. Hi again. Here's another of those "why no error?" situations... in Firefox 52 esr: https://www.babylonjs-playground.com/#QKQHS#542 Not sure if my bitching is substantiated, but had I not used a try/catch... I would not know that I forgot to capitalize 'toRadians'. Could be Firefox 52 causing the problems. Help/advice/correcting-of-Wingnut-stupidity... whole-heartedly welcome. Wingnut working-on a 22+ hour zero-reply first-timer question that SHOULD be easy to answer... but I'm not so sure. de-quaternification ops Quat-to-degrees, needed. Prolly EZ, but Wingnut is Quat-impaired. Nobody uses 'delete' anymore. Soooo, when I use it on box.rotationQuaternion... I get a little techno-woody. heh. Does .rotation property return-to chief/boss... when .rotationQuaternion gets assassinated/murdered? hmm. Inquiring minds want to know. Does a rotQuat set == .Identity()... relinquish control to .rotation? How about a rotQuat set == .Zero()? (Wingy pokes-at a delicate section of the framework... with an oversize screwdriver... causing sparks! He's an idiot, eh? *nod*)
  13. *nod* I think it's almost done, now. 14-18 inches of new stuff... in the last 16 hours (knee deep). Erf. And winds... just terrible. Pretty drifts, though. French curves. Currently, mail delivery would require mountaineering gear. heh. Snowblowing festival tomorrow. yay! Takes about an hour to blow my mail-person trails and back parking lot for this 4-plex. Toro 1132... 11 horsepower, 32 inch swath... auto-shoveler. It's my friend. 24 yrs old, starts first pull, and kicks royal butt. But the winds will still be here tomorrow... so... yeah... lots of snow blowing back in my face. I wear something similar to a space-walking suit, so I don't even notice. Just gotta be careful not to chow-up a dog or a snow-fort-building toddler. Remember those toddler mittens... connected to each other by a string? Well. if you get that string wrapped around the snow auger... well... it can get ugly quick. heh. (morbid, eh?) Same thing for dog-chains... you just hear a yelp, and then see red snow coming from the blower chute. (ewww) Myself and a video-producin' buddy once thought-of making a garden roto-tiller climb a standard ladder and crash thru a bedroom window and onto a teen girl's bed... chowing her into the mattress stuffing. (horror flick). We decided that the public was not quite ready for "Roto-Tiller Killer" heh. And boy, am I off topic. Let's talk about this physics comparison thing that Phil-Billy built. Coooooool. Gonna add a worldStep slider? You know... scene.getPhysicsEngine().setTimeStep(sliderValue); I wonder how worldStep values affect FPS. hmm. Snow for sale!!! By the ton, only. Cheap! Free Shipping!! Inquire within.
  14. Oh, cool idea! Side-by-side comparisons! hmm. Dead in both my IE and ESR52 firefox. No error in my FF... just 'Physic engine : energyJS - All is Ready'. But no scene. Blank canvas. FF ESR 52 has been showing signs-of NOT reporting errors very well, though. In my non-edge IE v11.0.9600.blahblah... X SCRIPT1046: Multiple definitions of a property not allowed in strict mode File: Oimo.js, Line: 800, Column: 20 exception thrown: TypeError: Object expected,TypeError: Object expected at hr (http://games-matter.com/assets/enginetest/energy.js:15:54035) at gr (http://games-matter.com/assets/enginetest/energy.js:15:53936) at pr (http://games-matter.com/assets/enginetest/energy.js:15:55907) at Kb (http://games-matter.com/assets/enginetest/energy.js:8:5153) at callMain (http://games-matter.com/assets/enginetest/energy.js:22:18529) at doRun (http://games-matter.com/assets/enginetest/energy.js:22:19222) at run (http://games-matter.com/assets/enginetest/energy.js:22:19408) at Global code (http://games-matter.com/assets/enginetest/energy.js:22:20322) X SCRIPT5007: Object expected File: energy.js, Line: 4, Column: 268 Wingnut tosses both of his primary browsers outside... into the new half-foot of snow (and still falling fast). Maybe I can freeze-away the browser bugs. Perhaps time for Wingnut to DL some spring-time fresh browsers, eh? I wonder when Spring will come. *sigh* (Wingnut hears his snowblower *sigh*, too)
  15. Hiya vladimr! I might have some help... https://www.babylonjs-playground.com/#1VGWP9#11 In this playground, I 'borrowed' (hijacked) applyDisplacementMap() and applyDisplacementMapFromBuffer()... from BJS main source. I think I modified them, too. Anyway, in lines 17-19... I make a standard ground mesh... sub-divided quite heavily. Now let's look at line 96. Pretty much a basic applyDisplacementMap() call... for ground... using a URL. Let's follow it up... to line 22. We really don't care about that function... EXCEPT... at line 51. Line 51... a call to applyDisplacementMapFromBuffer(). Hey... if YOU have a buffer of image colors... YOU could 'intervene' here, and apply ANY buffer, right? (hint) You can also look in this file... raw BJS source... https://raw.githubusercontent.com/BabylonJS/Babylon.js/master/dist/babylon.max.js Control-f doc-search for applyDisplacementMapFromBuffer... look things over, as wanted. That's where I hijack code-from. Mesh.prototype.applyDisplacementMapFromBuffer = function (buffer, heightMapWidth, heightMapHeight, minHeight, maxHeight, uvOffset, uvScale) So... ground.applyDisplacementMapFromBuffer(myBuffer, 100, 100, 5, 0); Pretty easy. You don't even need to have hijacked versions of applyDisplacementMap() and applyDisplacementMapFromBuffer() functions in your code. You just need a good buffered image, and then you can remove lines 21-97 from my playground. Just create a nice image buffer, somehow, and then do... ground.applyDisplacementMapFromBuffer(myBuffer, 100, 100, 5, 0); (I think) This should help get you rolling. (I hope.) Good luck. Got questions? Ask. We're here to help. (and we all learn from watching your experiments).