<div dir="ltr">Doug,<div><br></div><div>Our current renderer wroks at interactive frame rates, but without textures.<div>It uses java applet and JOGL and a custom format for streaming geometry data from a servlet parsing the CGML.</div><div><br></div><div><a href="http://iscope.graphitech-projects.com/indexTest.html">http://iscope.graphitech-projects.com/indexTest.html</a> <br></div></div><div>To load Rotterdam press ctrl+0->testing->LoadCustom Pilot->Rotterdam and navigate to the area.</div><div><br></div><div>Also there are other datasets:</div><div><a href="http://iscope.graphitech-projects.com">http://iscope.graphitech-projects.com</a><br></div><div><br></div><div>We do support some sort of texturing but it is very specific to this project and it consist in applying an orthophoto on top of buildings roofs.</div><div><br></div><div>Also, btw, how do we actually apply to the contest? Do we have to prepare a presentation document?</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><i style="color:rgb(51,51,153);font-family:Calibri,sans-serif"><span lang="EN-US"><font color="#4349a9">Federico Devigili</font></span></i><br></div><div><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif;color:rgb(51,51,153)"><b><font color="#4349a9" style="font-size:12px">Analyst and Developer<u></u></font></b></p><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif;color:rgb(51,51,153)"><b><u></u><font color="#4349a9" style="font-size:12px"> </font><u></u></b></p><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif;color:rgb(51,51,153)"><b><font color="#4349a9" style="font-size:12px">Fondazione Graphitech<u></u><u></u></font></b></p><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif;color:rgb(51,51,153)"><font color="#4349a9" style="font-size:12px">Via Alla Cascata, 56/C - </font><span style="color:rgb(67,73,169);font-size:12px">38123 Trento – Italy</span></p><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif;color:rgb(51,51,153)"><span lang="EN-US" style="font-size:12px"><font color="#4349a9">Office: <a value="+390461283397" style="color:rgb(17,85,204)">+39 0461 283397</a></font></span></p><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif;color:rgb(51,51,153)"><span style="color:rgb(67,73,169);font-size:12px">Fax: <a value="+390461283398" style="color:rgb(17,85,204)">+39 0461 283398</a></span></p><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif;color:rgb(51,51,153)"><span lang="EN-US" style="font-size:12px"><font color="#4349a9">Skype: fededeviwork<u></u><u></u></font></span></p><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif"><span style="color:rgb(51,51,153)"><font color="#4349a9" style="font-size:12px">Email: <a href="mailto:federico.devigili@graphitech.it" style="color:rgb(17,85,204)" target="_blank">federico.devigili@graphitech.it</a></font></span></p><p style="margin:0cm 0cm 0.0001pt;font-family:Calibri,sans-serif;color:rgb(51,51,153)"><span style="color:rgb(67,73,169);font-size:12px"><span lang="EN-US">Website: <a href="http://www.graphitech.it/" style="color:rgb(17,85,204)" target="_blank">http://www.graphitech.it</a></span></span></p></div></div></div></div>
<br><div class="gmail_quote">On Tue, Mar 17, 2015 at 7:54 PM, Information and updates on Web3D's Rotterdam city data competition <span dir="ltr"><<a href="mailto:geoweb3dcontest@web3d.org" target="_blank">geoweb3dcontest@web3d.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
FD, <br>
<br>
Thanks for your comments. <br>
Likewise my impression of Rotterdam data: texture heavy.<br>
When I look today in more detail at the Rotterdam AFRIKUUNDERWUK /appearances images, it looks like they may be already mipmapped. Most VRML viewers do their own mipmapping of textures at runtime, so these would end up double-mipmapped.<br>
<br>
Perhaps whoever created the data could have converted textures into equivalent vector data, perhaps at a loss of some detail at some LODs, and gain at some others.<br>
<br>
If you have a client that's performing well on a high performance computer, one idea is to convert it into an SSR (server-side renderer), like I did with freewrl (a vrml client). Let me know - I can give you some hints/tips. <br>
<br>
-Doug<br>
more..<br>
<br>
Here's my vrml server-side renderer URL, I can't tell if it works from inside my firewall, and I will shut it down in a few hours.<br>
<a href="http://ssrserver.ddns.net:8080/SSRClient.html" target="_blank">http://ssrserver.ddns.net:8080/SSRClient.html</a><br>
But the idea is to have all the GPU and CPU power on a server. Then mobile gets something very light.<br>
x there's no click/picking implemented yet, just a walk navigation<br>
- but it would take a small additional effort to get a picking click<br>
The client and server-glue code is checked into the develop branch of freewrl<br>
<a href="http://sourceforge.net/p/freewrl/git/ci/develop/tree/freex3d/src/SSR/" target="_blank">http://sourceforge.net/p/freewrl/git/ci/develop/tree/freex3d/src/SSR/</a><br>
and it uses libmicrohttp - a C web server.<br>
<div><div class="h5"><br>
<br>
<br>
><br>
> Our biggest problem in the development of a client capable of rendering<br>
> the whole city comes from the textures.<br>
> Rendering the whole city at LOD 2 in an average PC is doable (mobile?<br>
> not so much), and once you load the 3D model inside the GPU memory it<br>
> renders fast (we get 30+fps with mid range gpu rendering the whole<br>
> city). The trick here is to render big chunks of geometry at once thus<br>
> lowering the number of draw calls, it still needs considerable amount<br>
> of GPU memory.<br>
> Making it fully interactive requires some tricks, you either need to<br>
> hold the whole geometry hierarchy CPU side to do ray-casting/picking or<br>
> to use color picking on the GPU on feature level, the whole geometry is<br>
> rendered on an additional surface buffer where each surface have an<br>
> unique color with which you can get the feature id and access the GML<br>
> data (client or server side).<br>
><br>
> The problems are the textures, first having a huge number of texture is<br>
> extremely inefficient for the gpu, but even if you merge everything in<br>
> big texture atlases you still have just too much data. The solution<br>
> here is to implement something like id Software<br>
> megatexture <a href="http://en.wikipedia.org/wiki/MegaTexture" target="_blank">http://en.wikipedia.org/wiki/MegaTexture</a>, and some sort of<br>
> aggresive LOD technique. So you will only load the texture in the GPU<br>
> that are actually used in the rendering of the image AND you do not<br>
> load the full resolution texture but only a scaled down optimized<br>
> version of it. When a geometry is close to the camera the full<br>
> resolution texture is loaded and swapped with the old one.<br>
><br>
> FD<br>
><br>
> Federico Devigili<br>
><br>
> Analyst and Developer<br>
><br>
><br>
><br>
> Fondazione Graphitech<br>
><br>
> Via Alla Cascata, 56/C - 38123 Trento – Italy<br>
><br>
> Office: <a href="tel:%2B39%200461%20283397" value="+390461283397">+39 0461 283397</a><br>
><br>
> Fax: <a href="tel:%2B39%200461%20283398" value="+390461283398">+39 0461 283398</a><br>
><br>
> Skype: fededeviwork<br>
><br>
</div></div>> Email: <a href="mailto:federico.devigili@graphitech.it">federico.devigili@graphitech.it</a><mailto:<a href="mailto:federico.devigili@graphitech.it">federico.devigili@graphitech.it</a>><br>
><br>
> Website: <a href="http://www.graphitech.it" target="_blank">http://www.graphitech.it</a><<a href="http://www.graphitech.it/" target="_blank">http://www.graphitech.it/</a>><br>
<span class="">><br>
> On Mon, Mar 16, 2015 at 9:32 PM, Information and updates on Web3D's<br>
> Rotterdam city data competition<br>
</span><div><div class="h5">> <<a href="mailto:geoweb3dcontest@web3d.org">geoweb3dcontest@web3d.org</a><mailto:<a href="mailto:geoweb3dcontest@web3d.org">geoweb3dcontest@web3d.org</a>>> wrote:<br>
> One idea for GML is to use it as a format for transmitting data that<br>
> might normally be in a GIS database - the so called attribute tables.<br>
> Once transmitted, it would be put back into geometry files and database<br>
> attribute tables.<br>
><br>
> If trying to use Web3d -vrml or x3d- to render, one idea is to put ID<br>
> into the metadata for the web3d node. Then when searching for<br>
> relationships, the ID for a picked item would be used to search<br>
> GIS-like database attribute tables. This might allow skipping some or<br>
> all of the cityGML-specific format -instead using X3D+database to<br>
> implement/realize the goemetry and relationships.<br>
><br>
> Another options is a 2 or 3 or 4 layer system: database, GML server,<br>
> Web3d server, and client with a chain of communications between the<br>
> layers.<br>
> -Doug<br>
><br>
>><br>
>> The thing to work out, and make public, would be the web-service<br>
> 'dialog' between client and server, such as how to ask for an overview<br>
> LOD0 map of the area to get started, then how to tell the server the<br>
> client's new viewpoint pose: 3 rotations and 3 translations, and ask<br>
> for a screenshot rendering. Or pose + xy click point, and ask for<br>
> information on the item clicked.<br>
>> - then any compatible client could work with any compatible server<br>
>> -Doug<br>
>> more..<br>
>> I worked out an SSR for virtual reality recently, for freewrl, and<br>
> the client and C web server glue code are checked into freewrl as 'MIT<br>
> or equivalent' license, meaning 'have fun'.<br>
>><br>
>> I was able to display a bit of rotterdam in vrml, using libcitygml's<br>
> citygml2vrml.exe converter, followed by Chisel's CONDENSE> Create<br>
> DEF/USE (otherwise vivaty/freewrl run out of memory re-mallocing<br>
> textures), then wrapping the result in a Transform with -ve UTM / 3TM<br>
> coordinates of an Point, so as to get the view frustum within near/far<br>
> range of the geometry (vs being at the earths equator with the default<br>
> viewpoint, and not being able to see the neatherlands).<br>
>><br>
>> Then freewrl renders slow - 1.2 FPS. And that's just for one<br>
> subdivision of Rotterdam, mostly due to what I would call 'heavy<br>
> textures' 1024x1024x4 textures. But I do see 3D buildings.<br>
>><br>
>> I got Aristoteles to run a bit, but it showed no textures, rendered<br>
> 'zingers' -lines from each piece of geometry to a few arbirary points -<br>
> and was hard to navigate and 'enjoy'.<br>
>><br>
>> I tried building an SVN copy of Aristoteles but it doesn't build<br>
> right out of the gate. Many of these GML software projects were<br>
> abandoned about 5 years ago. I suspect GML was pushed by geography<br>
> professors and a few cities trying to break ESRI stranglehold. That's<br>
> hard, because most cities don't mind ESRI, have healthy budgets for<br>
> ESRI licenses, and have no interest in anything unconventional/free.<br>
> The general public doesn't need/want detailed GIS relationships. So who<br>
> needs GML is the remaining question.<br>
>> Esri black box server-side rendering of rotterdam:<br>
>> <a href="http://www.esri.com/software/cityengine/industries/rotterdam" target="_blank">http://www.esri.com/software/cityengine/industries/rotterdam</a><br>
>><br>
>> When I look at google maps, and remember back to MS virtual earth,<br>
> they used server-side rendering. What's changed: with webgl now readily<br>
> available, it should be possible to adjust viewpoint pose more freely<br>
> in 3D, including horizontal street views.<br>
>><br>
>> In freewrl's web3d SSR, I do a 2-step dialog with the server: first I<br>
> send where the client navigated to. Then the server does collision and<br>
> gravity adjustments to that pose, and sends it back. Then when the<br>
> client gets the adjusted pose, it asks for a snapshot in the second<br>
> step. The server renders the snapshot and sends it back, and the client<br>
> pastes it over the navigation grid.<br>
>><br>
>><br>
>><br>
>><br>
>><br>
>>><br>
>>> One idea is to use server-side rendering (SSR) in the following way:<br>
>>> - render GML LOD0, or 1 on the client side in real time, during navigation<br>
>>> - one the viewpoint is pointed where you want it, lift the<br>
> mousebutton/touch. The client then sends the viewpoint pose to the<br>
> server. The server renders that viewpoint using LOD3 or 4, and sends<br>
> back an overlay image.<br>
>>> - you can then click on the overlay image, The client sends<br>
> viewpoint, and point of clicking, back to the server<br>
>>> - the server constructs a pickray and picks the LOD3,4 geometry,<br>
> gets the IDs, looks up info in a database and sends back to the client.<br>
>>><br>
>>> Benefit: client stays 'light', and server does all the heavy work.<br>
>>> - client needs a bit of webgl for rendering LOD0 and/or 1, and for<br>
> navigating<br>
>>><br>
>>> -Doug<br>
><br>
><br>
> _______________________________________________<br>
> GeoWeb3DContest mailing list<br>
</div></div>> <a href="mailto:GeoWeb3DContest@web3d.org">GeoWeb3DContest@web3d.org</a><mailto:<a href="mailto:GeoWeb3DContest@web3d.org">GeoWeb3DContest@web3d.org</a>><br>
> <a href="http://web3d.org/mailman/listinfo/geoweb3dcontest_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/geoweb3dcontest_web3d.org</a><br>
<div class="HOEnZb"><div class="h5">><br>
><br>
> _______________________________________________ GeoWeb3DContest mailing<br>
> list <a href="mailto:GeoWeb3DContest@web3d.org">GeoWeb3DContest@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/geoweb3dcontest_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/geoweb3dcontest_web3d.org</a><br>
<br>
_______________________________________________<br>
GeoWeb3DContest mailing list<br>
<a href="mailto:GeoWeb3DContest@web3d.org">GeoWeb3DContest@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/geoweb3dcontest_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/geoweb3dcontest_web3d.org</a><br>
</div></div></blockquote></div><br></div>