From: doug s. <hig...@ho...> - 2014-12-03 22:32:41
|
I got the X3DOM version of my townsite_withHud working - see the webgl link on this page: http://sites.google.com/site/airdriehistoricaltour/ -Doug more.. Instead of Routes from a script I used getElementById or the jquery equivalent and set fields directly from the script. I found I could create a new x3dom.fields.SFVec3f(x,y,z) but I couldn't create a new x3dom.fields.SFRotation(x,y,z,a). There is no SFRotation object/class/prototype. So I would use transform.setAttribute('rotation',x+' '+y+' '+z+' '+a); Otherwise the x3dom elements worked pretty close to the x3d, and I even copied and pasted some javascript from Script node to html <script> element before reworking it. more.. All my static geometry I inlined from a regular x3d file, and I re-animated the scene in the html javascript. The html nodes are a bit different, in that they follow html conventions, not self-closing (versus the inlined x3d which is in proper xml format). I find walk 'w' navigation is a bit harder to control in my townsite scene: it's a rough ride over my indexedfaceset grid terrain. And when you reverse -using the RMB on desktop- it ignors terrain gravity/collision so you often end up below grade. And it has only one forward speed, although you could probably put a slidebar control somewhere to help with that. ---------------------------------------- > From: hig...@ho... > To: fre...@li... > Date: Mon, 1 Dec 2014 07:35:00 -0700 > Subject: Re: [FreeWRL-develop] three.js > > Greg, > Thanks for the three.js details. > I did get a bit working in x3dom, enough to see some similarities: x3dom has no support for protos or script nodes (the latter you would re-do in html javascript). > IIRC galaxies doesn't have scripts. Just protos. Chisel has an Un-Proto in its REORGANIZE menu. > http://www2.hrp.no/vr/tools/chisel/install.htm > H: chisel's un-proto will unroll galaxies protos into regular vrml allowing three.js to parse it. > -Doug > more.. > my x3dom townsite so far. As of today the year slidebar is working, and the year part of photo tour is working: > http://dug9.users.sourceforge.net/web3d/townsite_2014/townside_withHud_x3dom.html > - the static geometry comes in one Inline in conventional .x3d format, and there are a few x3dom-specific parameters for Inline to convert Inlined DEFs to element ids with a namespace mangle. > http://doc.x3dom.org/author/Networking/Inline.html > Then I can html-script against any node in the Inlined file using the namespace__DEF convention. I was lucky I had only one Inline (not nested) and one singleton ProtoInstance. > To store my ProtoInstance initializeOnly data in html, I put it in MetadataString and MetadataFloat nodes, and put those in a MetadataSet as the scene's metadata (but I could have declared MetadatSet's containerfield='children' (vs default Metadata field) and put it anywhere. Then with id='prototypename_fieldname' convention I accessed the data from html script element. Or I could have put the data directly in static js vars or a few other places. > > ---------------------------------------- > Date: Sun, 30 Nov 2014 18:59:44 -0800 > From: ne...@po... > To: fre...@li... > Subject: Re: [FreeWRL-develop] three.js > > > doug sanden wrote: > >> Greg wrote: """ >> P.S. three.js includes a VRML loader; has anyone played with >> that? I assume it handles only geometry/materials, not behaviors, >> but I haven't had a chance to try it yet. >> """ >> I haven't but I want to get my townsite_withHud x3d into a webgl >> format, now that InternetExplorer runs webgl, so let me know >> how it works. > > Not so well. :-/ It uses a fairly simplistic regex/state-machine model > to do the parsing, and the current version fails utterly on: > > - protos (tries to parse "IS" lines as regular scale/transform/etc. lines) > - text nodes (thinks "size" in FontStyle should behave like "size" in Box > and sensors, sigh) > - IndexedLineSets (haven't investigated, but nothing shows up) > - routes/interpolators/etc. > - local file access (at least from Chrome, which has a fairly strict > common-origin policy that hasn't been improved in more than 4 years) > > It also seems determined to insert a bogus octagonal ground plain, which > obviously blows for outer space. > >> more.. >> Townsite is similar to your Galaxies scene in that it's partly >> lots of static geometry, and partly scripts and routes. If we >> can get the geometry to show, In theory we should be able to >> re-program our animations in html javascript. > > Yes, that was my thought, too. I've already experimented with it in > a trivial way; my first test scene had three objects that rotate or > bounce, and this was the entire render loop: > > function render() { > requestAnimationFrame( render ); > > cube.rotation.x += 0.01; > cube.rotation.y += 0.01; > time += 0.02; > sphere.position.y = 0.5 * Math.sin( time ); > dodec.rotation.x -= 0.012; > dodec.rotation.y -= 0.012; > > controls.update(); > renderer.render( scene, camera ); > } > > The middle 6 lines are the animation stuff; the other three are standard > boilerplate. (Obviously this isn't ideal since the various rates depend > on how quickly the loop is iterated, but that's a detail for later.) > >> The last link I >> have for your galaxies: >> Galaxies: >> http://gregroelofs.com/3D/43487-galaxies/43487-galaxies.wrl > > That's still the current link, though I'm not sure how the model compares > to what I've got at home. (Not that I've worked on the latter much in > the last several months...) > >> Q. did you get galaxies to run with x3dom? > > No, I haven't even done so in three.js; it uses too many protos, nested > transforms, inlines, and protos for me to expect much success. :-b I did > try a house model vaguely similar to the example at the three.js site; > it failed miserably. > > But I'll definitely take a look at x3dom at some point. If it's got better > VRML support (couldn't be much worse!), it may be a better way to go for > the more complex models. (Some of them are mostly generated from code, > so targeting a new renderer is kind of a one-time fixup.) > >> They have been working >> hard on x3dom. Here's an example of a scene that was exported >> from blender as regular .x3d, and then in an html with x3dom it >> refers to it with an Inline element: >> http://ivanchanphotography.com/skytrain > > Here's a similar three.js example: > > http://carvisualizer.plus360degrees.com/threejs/ > >> Not bad for geometry. So its the scripting in x3dom that's the >> learning challenge. I wonder if three.js is similar - placing >> geometry as html or xml elements, or does it bring everything >> into .js. > > The latter. Here's the setup for one of the three objects in my > render loop above: > > var dodecGeometry = new THREE.DodecahedronGeometry( 0.6, 0 ); > var dodecMaterial = new THREE.MeshLambertMaterial( { color: 0x884400, shininess: 20, wireframe: true } ); > var dodec = new THREE.Mesh( dodecGeometry, dodecMaterial ); > scene.add( dodec ); > dodec.position.x = -3; > > Here's a VRML import: > > var loader = new THREE.VRMLLoader(); > loader.addEventListener( 'load', function ( event ) { > scene.add(event.content); > } ); > loader.load( "http://localhost:8000/models/vrml/galactic-center-orbits.wrl" ); > > The need to run a web server just to be able to load models from the > filesystem is annoying, but I wasn't willing to restart Chrome with a > less secure command-line option. > >> more.. >> Townsite: >> http://dug9.users.sourceforge.net/web3d/townsite_2014/townsite.html >> https://sites.google.com/site/airdriehistoricaltour/ > >> I tried doing an Inline to my townsite.x3d from html x3dom, >> but it blank-screened. I tried importing into White_dune and >> exporting as html_x3dom but no improvement. Mind you the townsite >> scene has unusual switch(-1) structure, so it's not dead simple. >> So I think there may be limits to what forms of geometry and >> scene structure are allowed in x3dom, and I wonder if there are >> simplifications in three.js. > > Big-time, I'm afraid. But it's still under development, so there may be > hope--though most likely only from VRML-using folks who prefer a JS-centric > behavioral model, which could be a long time coming. > > Greg > > P.S. Thanks for the 1024-limit suggestions in another thread; I haven't > had a chance to investigate further yet. > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk > _______________________________________________ > FreeWRL-develop mailing list > Fre...@li... > https://lists.sourceforge.net/lists/listinfo/freewrl-develop > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk > _______________________________________________ > FreeWRL-develop mailing list > Fre...@li... > https://lists.sourceforge.net/lists/listinfo/freewrl-develop |