Jump to content

The Wingnut Chronicles


Wingnut
 Share

Recommended Posts

Nod, understood.  I wish you would have offered yourself more choices than "do battle" or "post smart ass".  There's always "debate the policies that this forum SHOULD use for dealing with (annoying-for-some-reason-) users".  I would have welcomed that as a "winning move".  Still would.  And I never expected the "new york" comment to have much impact.  I would hope that the other things I said.... would have merit or impact, though.  Not because I wanted to attack your attitudes, but because I want to formulate... and get many/all forum helpers... to commit-to a friendly policy toward everyone, no matter how they "seem" to be.  We don't know their stories, so we always lean toward friendly and patient.  That's the policy I hope-for.

I wasn't petting you because I thought I hurt your feelings, or that I wanted a LIKE from you.  Ego-centric motivations or not, the stuff you have produced... has helped our cause... a lot.  And you tell us about it, and hardly anyone converses with you, but I always read it and try to understand.  I can picture your two-pass system.  You're growing objects from Blender data.  Those objects sometimes do serious data massaging before they hand their outputs to the .babylon file.  I bet some of those objects... are complex. 

That "output to html Babylon scene" thing... is jaw-dropping-amazing to me.  It really shows all the work... all the data types... all the considerations... the breakdown and rebuild-up.

I guess... I wanted to say that... just because I don't agree with your policy toward the Babylon kids... does not mean I don't love what you do in other areas.  Whether you enjoy pats-on-the-back or not, you're still going to get one from me, and I think you deserve it... and more.

I think you might be a robot.  I'm not certain, yet.  (j/k)  :)

Link to comment
Share on other sites

Heya Flomo, good to see you again!  Thanks for the +++.  I'd love to chat about us, but I got some business (blech) to take care-of.  Since we have no 'Discussions' forum here (dread)... AND seeing that the topic police are out in full force, I need to do all my discussing... here in The Wingnut Chronicles.

So, to everyone, (but maybe mostly Jerome)...

Why are there no X/Y/Z subDivs allowed on meshBuilder.CreateBox?
   --  Currently, to get a subDiv'd box, we need to glue 6 createGround's together.  hmm.

Why are there no discrete (separate) horizontal and vertical subDivs... for meshBuilder.CreateSphere?
   --  http://playground.babylonjs.com/#1U9UDL#0  According to docs, segments = 'the number of horizontal segments' (subDivs).  That playground is using 5 segments, but I don't see 5 segments happening on that sphere anywhere.  I think that segments parameter is on the mushrooms.  :)

Why does cylinder get to have all the subDivs fun?

When using extruded shapes, is the number of vertical subDivs... set via the number of items in the path array?

I tried to build one, but both myself and the framework... got tumors.  :)  Missing comma after newRotation in the demo constructor, too.  Pasters would be furious.  heh. 

(Not like users can paste this line into a playground and have it instantly be successful, anyway.  Lots of prep work needed for this baby.) 

Are we sure that the shape array should be vector3's?  I would have thought v2.  hmm.  Maybe not.  If a pyramid shape were used (no bottom to the shape, because we used vector3's in the shape array... in order to raise the pyramid's tip), then would the resulting extrude... have a pyramid for its top cap?  And, would the bottom cap be an inverted pyramid?  hmm.  (I guess I need to do some playground searching, huh?) 

Update: http://www.babylonjs-playground.com/#EALGM#6 (borrowed PG). I put various retarded values in the Y component of the shape vectors.  No pointy/bumpy surfaces seen.

Also, as the amount of extrusion increases (end of line 66), the mesh grows thicker... on the bottom, not the top.  Interesting.

All comments welcome, as always.  Thanks!

Link to comment
Share on other sites

hey Wingy,

Answering in the text :

>>> Why are there no X/Y/Z subDivs allowed on meshBuilder.CreateBox?
   --  Currently, to get a subDiv'd box, we need to glue 6 createGround's together.  hmm.

Actually the MeshBuilder class was created to allow any extension of the mesh constructor behavior without dealing with hundreds of coma separated parameters in the function call signature. The motto was : extensive, a default expected behavior the less surprising possible (or the most expected possible: don't pass anything to CreateBox and you'll get a regular box sized one).

>>> Why aren't any X/Y/Z subdivs ? well, because so far noone implemented them. But it's really feasable, just a matter of time.

Why are there no discrete (separate) horizontal and vertical subDivs... for meshBuilder.CreateSphere?
   --  http://playground.babylonjs.com/#1U9UDL#0  According to docs, segments = 'the number of horizontal segments' (subDivs).  That playground is using 5 segments, but I don't see 5 segments happening on that sphere anywhere.  I think that segments parameter is on the mushrooms.  :)

There are 5 horizontal stripes in this PG sphere. That's what the parameter segments actually sets. Don't count the ever present surface linking the pole points to the horizontal stripes.

The number "vertical" subdiv in the sphere is proportional to the number of segments as you can see it in the code : https://github.com/BabylonJS/Babylon.js/blob/master/src/Mesh/babylon.mesh.vertexData.ts#L737

It's twice the number of horizontal stripes, including the poles.

I think, it's for coherence reason : segments + 2 steps on PI and  2* (segments + 2) steps on 2 PI.

 

>>> Why does cylinder get to have all the subDivs fun?

ASAIK it was done by DK initially to allow people to use subMaterials on the cylinder. But he confessed that quite noone does this. The feature is still here for backward compat reasons.

>>> When using extruded shapes, is the number of vertical subDivs... set via the number of items in the path array?

http://doc.babylonjs.com/tutorials/Mesh_CreateXXX_Methods_With_Options_Parameter#extruded-shapes

http://doc.babylonjs.com/tutorials/Parametric_Shapes#extrusion

 

>>> I tried to build one, but both myself and the framework... got tumors.  :)  Missing comma after newRotation in the demo constructor, too.  Pasters would be furious.  heh. 

(Not like users can paste this line into a playground and have it instantly be successful, anyway.  Lots of prep work needed for this baby.) 

instance is to be passed only when you want to morph an existing extruded shape. You first have to create it without "instance" but by passing the scene.

http://doc.babylonjs.com/tutorials/How_to_dynamically_morph_a_mesh#extruded-shape

>>> Are we sure that the shape array should be vector3's?  I would have thought v2.  hmm.  Maybe not.  If a pyramid shape were used (no bottom to the shape, because we used vector3's in the shape array... in order to raise the pyramid's tip), then would the resulting extrude... have a pyramid for its top cap?  And, would the bottom cap be an inverted pyramid?  hmm.  (I guess I need to do some playground searching, huh?) 

The shape is the model you want to extrude. Consider this model is "drawn" in the plane xOy and will be extruded along its Z (the path you pass). So you can set your shape with x and y values only.

But nothing prevents you to use a 3D instead fo 2D shape if you want. It will just be extruded along Z the same way than a 2D shape (no computation to inverse the shape -your pyramid- at the end of the path though)

Link to comment
Share on other sites

Thanks Jerome.

So, then, with the sphere... Is this statement correct? 

"segments is the number of horizontal 'layers'... counted vertically, excluding end caps."

See what's happening, here, J?  There's confusion with 'horizontal' and 'vertical'.  Horizontal segments (as you use it in the docs) == vertical subDivs, yes?

Maybe not.  I consider it one of my duties... to look for things that could confuse users.  I hope I'm not being a pain in the butt.

To many users, segments == subDivs.  When thinking like that, segments == number of vertical subDivs.  (and the word 'horizontal' would not be applied)  *shrug*

I dunno.  'segments', 'sections', 'subDivs', 'tessellation'... seems we have a terminology circus happening here.  But, maybe I'm going crazy.  :)

------------------------

Extrudes... thanks for the info.  I think shape array should be v2's, not v3.  Seeing that all vertical-ism (3D) is ignored during extrudes, v2's seem more applicable.  But please, please, do not change something just because I want it so, or to shut me up.  Only consider these change proposals... IF you think they are wise (and if it's not frozen).  thx.

Link to comment
Share on other sites

Yep, you're right about segments : those are the horizontal stripes !

About the terminology... well, I don't think that's so important actually (although I used to). Why ? As you said, with our international community, because it's not good English. What really matters then ? it's that the users understand what they do/use whatever it's called tessellation/subdivisions/layers/scoobidoos.

I think a readable tuto, a snippet of code to outline what is important and a PG with comments and a reference to the lines where to adjust the values and to check their impact is far more useful to the end user. When I started using BJS after having tested for weeks ThreeJS, I encountered for the first time of my life the word "tessellation" (not used in 3Js).

I searched the Web, Wikipedia, etc. I only found mathematical explanations I didn't understand for the simple case of the BJS shape I wanted to use, a cylinder. It was, for the little I got, about subdivisions of a surface with plenty of mysterious concepts.

Well, I didn't give up. I just changed the tessellation value of my cylinder to some very high number, then to some very tiny one. Tilt !!! gotcha ! All this complex vocabulary just to say "subdivisions" along the perimeter or rotation ???

Then each time I encountered again this word, I wasn't afraid any longer, I knew it was just a way to subdivide some dimension of a mesh.

Would have it been simpler for me if it were called "subdivisions" instead (I know the word "subdivision") ? Not sure. I would have wondered : subdivisions of what ?... and finally would have done the same, it is to say, to try with different values to understand what changes or how. And I know that, even if it were detailed ("horizontal subdivisions, when looking the mesh from Z axis, Y axis up and ignoring the subdivisions concerning the pole points"), I would have tested anyway to check my understanding.

In brief, "help me to understand" is my preferred way to learn things (tuto, editable PG) more than "explain me all". As I'm not an English native speaker, I don't really care if the word "tessellation" is better than "subdivisions" or "scoobidoos"  ... as long as I know that a sphere with 20 scoobidoos will probably be smooth and heavy in term of vertices and a sphere with 3 scoobidoos will be sharpen but highly reproductible in a SPS for example.

 

For extrusion : yep 2D shapes are enough in the current case. But as it works also with 3D shapes, why not doing it also ? this can lead to some nice final extruded shapes when used with the right textures (dragon scales) because the UVs then follow the 3D shape shift.

 

Link to comment
Share on other sites

Thanks again, J.  I see your points.  Shape is almost able to accept vertexData.positions (with a little format massaging).  *nod*

http://doc.babylonjs.com/tutorials/Mesh_CreateXXX_Methods_With_Options_Parameter#extruded-shapes

Thoughts so far: 
- Above docs, both code-lines are 'update' examples, not initial-creation code lines.  I think this area needs a 'create' example, one using options, and one with standard params.
http://www.babylonjs-playground.com/#20IBWW is broken.  (in the morph docs).  Yet I was still able to see remarked lines, and learn that updatable was inside the options obj.
- I would have NEVER thought that 'updatable' was allowed as an options property.  When users don't put it there, and put it after 'scene' instead (like more-standard mesh), does it break?  I suppose I can learn about that, once I get an options-based extrude to happen.  My test is still failing... but at least I got SOME activity now.  :)
- The non-options version I found via pg-search, is finally proving to me that subDivs == number of items in [path].  Yay.
- Rotation is change PER PATH STEP (stated here, in the table).  Why not the same for scale?  (scale-change per path step)
- Same doc, same table, I think 'radians' should be mentioned somewhere near the 'rotation' property, if possible.  Also... in the custom extrude rotation table.  'Number' and 'value' are a little vague... maybe.  Not sure.  Your call, on all of it.

oooookay, that's plenty for one post.  Thanks J!  I keep forgetting to look at http://doc.babylonjs.com/tutorials/Parametric_Shapes#extrusion.  There's LOT's of PG demos there.  (Duh, Wingy)  :)   BUT, none of them use the options-based params obj.  Also, RF9W9#4 and RF9W9#5 are broken. 

Sorry for the workload.  You know how it goes... it's not all fun and games around here.  ;)  (oh man, that's a low blow - I pissed-off myself with THAT one.)  :D

Link to comment
Share on other sites

1 minute ago, Wingnut said:

Hi gang!

  Wow, I just found out that @Nockawa contributed Parallax Mapping to BJS!  How cool is THAT?!  Yum!  Way to go, Noxy!  :)   I need to do less yapping and more paying attention, eh?  That picture says it all.  Good good good!  Congrats, and thanks, Nockawa!

You're welcome! :)

Sorry I may be rude, I know we're all trying to help, but I just feel that what is needed right now concerning documentation is people to fill some doc comments in the .ts files. Debating takes time, energy and this is the thing we miss the most. It's always interesting to debate, that's what make OSS project cool. But we have to find the right balance: too much debate -> no contribution to the project... Not enough -> dictatorship and everybody leave the project soon or later.

Link to comment
Share on other sites

Understood, and I agree.  Nah, you weren't rude... you're a "let's get down to business" sort-of guy... I can respect that. 

Unfortunately, we don't have many people who are qualified to muck-around in the .ts files.  If a drunken puppy like myself... went wandering-around in the ts source, I think Deltakosh would have a conniption.  :)  Besides, I just plain don't WANT to go in there.  That is not where I belong.  It is my opinion that FEW belong there.

Hell, I get scared editing classic tutorials.  My butt would be SO puckered... editing a ts file... that I'd surely die of a heart attack.  :)  How do we get past that, N?  Btw, you spelled 'tutorial' wrong in a link near the bottom... but we love ya anyway.

Hey, somebody gave me more LIKEs quota... I can LIKE all day, now!  Cooooool.

Link to comment
Share on other sites

Quote

 

Unfortunately, we don't have many people who are qualified to muck-around in the .ts files.

 

Actually it's not more difficult than just set a comment between /** and */ just before a method declaration ;). Here's an example :

https://github.com/BabylonJS/Babylon.js/blob/master/src/Particles/babylon.solidParticleSystem.ts#L172

Link to comment
Share on other sites

Yeah, then I spill my cocktail on my keyboard, the dog runs off, I accidentally delete 4 properties, and think everything is fine, yay me for contributing.  :o

I can visualize the merge/commit police... shaking their heads in disgust, as they reject the PR and try to tell me WHY... in a time-wasting rejection notice.  heh.

Link to comment
Share on other sites

Hey look, somebody made a Newton's Cradle!  http://www.babylonjs-playground.com/#MDMVA#5

I bet this is someone testing our new physics interface.  These physics calls don't look familiar to me... but they look easy and powerful.  hmm.

Set the restitution in line 22... to 1.2... and things quickly get all-colors-of out-of-control.  :)

Link to comment
Share on other sites

Hi again, gang!  In Nockawa's Parallax Mapping Demo - http://babylonjs-playground.com/#10I31V#8 ... does anyone besides me... see some kind of "artifact" on the right side of that box... a short horizontal line near the center of the face?  It might be happening on all faces... not real sure.  I see it in both FF and IE, but it could be an issue with my graphics hardware.  Those who also see it, please "LIKE" this post.  Thanks. 

Man, Parallax Mapping is sure a nice effect, eh?  I like it.  Party on!

Link to comment
Share on other sites

2 hours ago, Wingnut said:

Hi again, gang!  In Nockawa's Parallax Mapping Demo - http://babylonjs-playground.com/#10I31V#8 ... does anyone besides me... see some kind of "artifact" on the right side of that box... a short horizontal line near the center of the face?  It might be happening on all faces... not real sure.  I see it in both FF and IE, but it could be an issue with my graphics hardware.  Those who also see it, please "LIKE" this post.  Thanks. 

Man, Parallax Mapping is sure a nice effect, eh?  I like it.  Party on!

Can you publish a screenshot with the artifact highlighted ? I use imgur.com to publish picture, it's easy, no registration.

Link to comment
Share on other sites

Oh, hi!   Yeah, can do, sorry it took so long.

http://urbanproductions.com/wingy/babylon/misc/para_line.jpg (right side)

http://urbanproductions.com/wingy/babylon/misc/para_line2.jpg (left side)

I recently updated NVidia gfx drivers AND mb bios.  Dell XPS 8700... pretty new (for me).  :)   I hope I didn't break something.

Thx for concern...  I appreciate it.

 

Link to comment
Share on other sites

Hi guys!

   With all these game programmers in the neighborhood, I thought I would try to help-out if I could.  Once upon a time... I wrote midi songs, and, although most of these are unfinished works... everyone is welcome to steal them without giving me credit and without royalties.  Notice the ones that are labeled "Rendition", as these are likely copyrighted.  For most of these songs, you will need to spend some time in a midi editor... to get them ready for use.  But hey, why not?  What did a little midi work ever do to you?  :)

I'm also willing to help people make more-complete versions... if they have needs.  I THINK I still know how to write midi... but I could use a little time to learn some new midi software I have.

Have a look, a listen, and a steal, as wanted.  http://webpages.charter.net/wingthing/midi/misc_midi.htm   Pardon the mistakes on the webpage... I'm still cleaning it up.  Party on! 

Link to comment
Share on other sites

Thanks guys.  Yeah, I'm about boogie-woogie'd-out, but I adore rags (Joplin).  I'm not worth a crap at encoding them.  Besides, there are well-encoded versions of all the great rags... already on the web. 

I also like polkas.  I also like marches (Sousa junkie).  Notice a theme?  All "happy" music.  :)

What I'm really hoping-for... is for mesh to trigger activity... based upon sysex events (non-audible notes) inside the midi data.

Often, these would time-align with crash cymbal hits and downbeats, etc.  Midi Machine Code (mmc) is... a way to control manufacturer-specific settings on the playback devices (such as a synth).  VP... you likely know all about this... cuzzzzz... you're a musician, too, I heard. 

MMC is a way... for us to "invent" Babylon Midi Machine Code.  It starts with a few "special midi bytes" that says "hey, here comes a special command, meant only for BabylonJS scenes".  Our scene audio system would "see" those BMMC bytes arriving... and pipe "the goods" into a pile of ActionManagers.  All of sudden... our mesh are dancing to the beat.

Heavy, eh?  *nod*.  But, VP, don't be "assigning" me as "Mister Babylon Midi Guy"... cuz... I got a ton of stuff on my plate.  I'm learning about 734 separate systems right now, and if you add more workload... I'm going to get a tumor.  :)  Perhaps YOU should be "Mister Music", huh?  Yeah!

(He says "8-bit" like it's a herpes infection.)  heh.  Just pipe that midi into a rack synth, and you can scare the dog clean out of the county!  :)

Link to comment
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...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...