JBatUN

Members
  • Content Count

    19
  • Joined

  • Last visited

  • Days Won

    1

JBatUN last won the day on May 9

JBatUN had the most liked content!

About JBatUN

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. JBatUN

    Data Visualization Authoring Tool

    @kcoley I forgot to mention the most important part - your new file imported into Blender perfectly!!!
  2. JBatUN

    Data Visualization Authoring Tool

    @kcoley Your findings definitely gave me some clues to look for. For the test view, there are basically 5 layers: a plane platform, map country borders (translated from geojson multiline string), map graticule, line based text labels, and a babylon primitive (e.g. box) generated from SPS. I'm not knowingly using submeshes unless SPS is considered as such. From your message I guessed the culprit would be the map, graticule or text labels (all line based) so I took a closer look at these. I generated four output GLBs ... without labels, without map, and without the grid. In each case the Blender import failed. This was a surprise. I then removed the SPS generated objects (box geometry) and it worked without errors. For my usual work around I loaded the file in the Three.js editor, changed the SPS material to MESHBASIC and set Vertex Colors to Vertex. The GLB file size changed from 1.09MB to 1.05MB but loads in Blender with no issue. I tested the outputs from the Three.js editor with all the different materials thinking it was a blender issue - but all GLBs imported ok. The reason I've been using Three for the re-export is I have the same problem when exporting from the sandbox. This could be a Blender Importer issue. And even more likely my code. Thankfully the work around is enabling us to keep progressing since this summer we'll be producing possibly hundreds of publication outputs (print, video, interactive). Without Babylon, none of it would be possible. So I hope all your efforts are not because I've made a mistake somewhere!!! Another BIG THANKS for your support and efforts, JB
  3. JBatUN

    Data Visualization Authoring Tool

    @kcoley Thanks!!! Your efforts are very much appreciated. I've been testing a lot with Blender to see if I could find the specific issues. Just to be clear, here are the results: - Export GLB from my app ... -- Import to Blender -> fail -- Test with Babylon Sandbox -> works no problem, vertex colors are rendered. -- Export GLB from Babylon Sandbox and import to blender -> fail (same errors) -- Test with Three.js editor -> imports, but shader has to be changed to Basic and vertex color on. -- export GLB from three.js editor (with changes) and import to blender - success For now I've been using this quick work around to test blender rendering and everything has been perfect. A simple test image (Blender Cycles Renderer) below of Global Cholera cases. As @Deltakosh mentioned, with all the moving parts here between my app and Blender, it could be either of the two. I also recognize that this is probably not the usual workflow for most users. Again, thanks for all your efforts, JB
  4. JBatUN

    Data Visualization Authoring Tool

    @kcoley I viewed the file in the Babylon sandbox and indeed it shows all the data and everything needed ... the lines and geometry with vertex colors. That's pretty much all I need for the export since the values are all data generated. The rest I can handle in Blender, etc... This could be an issue of the other viewers or plug-ins but I'll share with you just in case it does relate to the serialization process. The file you shared would not import into Blender or Three.js editor or ClayGL viewer. In all cases there was an error. When I export a new glb directly from my application, I import it to the Three.js editor, change the material for the boxes to basic, then the vertex colors show and I re-export to GLB (using the three.js serializer in the editor) - this GLB imports to Blender with no problem. 1.] Export GLB from Cambro 2.] View file: -- Babylon Sandbox - Good -- Blender: Error -- Three.js Editor: Good, with change to Basic Shader and Use Vertex Colors 3.] Import to Blender -- Export from Three.js editor to new GLB -- Import to Blender: Good In short, for some reason the GLB output from Babylon will not import to blender but the from three.js it will. Cheers, JB
  5. JBatUN

    Data Visualization Authoring Tool

    @kcoley I'm attaching a babylon file in case it helps. Unfortunately I had to produce it from Babylon editor but unedited - so hopefully it is close to what I would produce natively from the application. For some reason the usual serializer is not working for me (var serializedScene = BABYLON.SceneSerializer.Serialize( scene ) ...). Thanks, JB sceneFile.babylon.zip
  6. JBatUN

    Data Visualization Authoring Tool

    @kcoley If you have any questions please don't hesitate - happy to share any info I can that would be helpful. I can produce a .babylon file of the scene if needed. As for the ground, it's a plane with StandardMaterial texture. What's odd is even the diffuse, specular, and emissive colors seem to be lost. In editor I see a normal map is referenced, but it reads as undefined. One problem may be because I do (as an option) apply a displacement map. Otherwise the params are standard configuration of the material. var path = getTexture( platOpts.texture ); platform.applyDisplacementMap(path+"Displacement.png", 0, 1.5); Standing by if I can be of any assistance. P.S. Although the GLB can be rendered in Babylon, Three, and ClayGL viewers, it will not import in Blender (could simply be an issue with the Blender export add-on). I had to convert the GLB to OBJ to import. It's a bit of a shame that khronos lists so many exporters but very few importers. Thanks again and have a great weekend, JB
  7. JBatUN

    Data Visualization Authoring Tool

    @kcoley Sorry if I'm being a pain! I'll try to explain as best I can as I understand how difficult it can be to try to troubleshoot something without all the information. As mentioned before, the vertex color is data driven from the sps creation process. The material is part of the authoring process where I've incorporated virtually all materials and properties. You can see in the attached an example where parameters are set for PBR Metallic Roughness. Unless a base texture is set, the colors are retained and the textures are used for effect. This is applied to the geometry before the sps init function. From what I can tell from the export, the color shader data is included - if I work in Babylon editor and I manually set the material to colorShader the colors do show up. The data points otherwise render as black. The platform (ground) material properties are not carried over either. None of the parameters set for the material are included in the export. I've attached a screen shot for what is seen in editor to see the difference. Hope this helps. JB
  8. JBatUN

    Data Visualization Authoring Tool

    @jerome Thanks for the tip. I made the change to: var rgb = new BABYLON.Color3.FromHexString(c); sps.particles[p].color = new BABYLON.Color4(rgb.r, rgb.g, rgb.b, 1); c is a data generated value in hex so I'm stuck with the conversion, but the change is working well. Still getting the error message on export: babylon.js:4 BJS - [10:55:50]: Unsupported material type: colorShader In addition to the color shader a material is added with textures ... but this is also not coming through in the export. I'm sure lot's of user error here so I'll keep experimenting.
  9. JBatUN

    Data Visualization Authoring Tool

    @kcoley I've done a some more experimenting and wanted to confirm that your update to include lines is working perfectly. The map vectors and labels are rendering exactly as expected. Awesome job!!! The issue I'm facing appears to relate to the coloring of the sps geometry: sps.particles[p].color = new BABYLON.Color3.FromHexString(c); Where c is just a scale of hex values. For all the editors I've tried these values are not included in the export. @The Leftover I'm following your work closely especially your recent work with text rendering. Very impressive. We're focused on humanitarian and development data for an international organization and hoping that this platform will enable us to create data driven stories about complex subjects. Making quick progress on our authoring tool and will share on github as soon as possible. Hoping others will find it useful and possibly contribute. And good luck to you too!
  10. JBatUN

    Data Visualization Authoring Tool

    @kcoley Wow - thanks!!! I just tried the update with an example that is probably a good stress test (world map line system, label lines, etc.). It's hard for me to assess the update fully with the variances among the different GLB importers. I've tried an exported file in the Babylon editor, ClayGL viewer, and Godot ... all have a different result. There's a chance some of the issues I'm facing are my own error, but here's the error message I receive when running the following code: var glb = BABYLON.GLTF2Export.GLBAsync(scene, "sceneFile").then((glb) => { glb.downloadFiles(); }); I'm also including the GLB file in case you want to give it a try yourself. Thanks again for your great work!!! JB sceneFile.glb
  11. JBatUN

    Data Visualization Authoring Tool

    @Spankied I'm not using a UI Library per se if you mean frameworks like Bootstrap. Not sure if this answers your question, but here are a few additional details... - Most of the UI components are based on Polymer and custom CSS. I never used Polymer before but found it so easy, it served the purpose to have reusable UI elements for each view. All the elements are pretty much straight html as I'm trying to avoid dependencies. I'm not event using Polymer components...just the framework for creating elements. - These components are linked to a Vue.js model [component -> Vue model -> Babylon] - Also, I tend to use D3.js (for all it's features) as a JQuery like event handler. E.g, var saveImage = d3.select("#saveImageFile"); saveImage.on("click", function() { BABYLON.Tools.CreateScreenshotUsingRenderTarget(engine, camera, 2048); }); Lastly, for now I'm borrowing the Blender icons (as svg) or creating my own. Let me know if you have any questions. Cheers, JB
  12. JBatUN

    Data Visualization Authoring Tool

    @kcoley not sure if this is helpful for your glTF serializer work, but aside from the export of lines, I'm also getting the following error message: BJS - [02:58:48]: Material type ShaderMaterial for material colorShader is not yet implemented in glTF serializer. Also, if you need some extensive testing for your updates, would be happy to help. Cheers, JB
  13. JBatUN

    Data Visualization Authoring Tool

    Hi all, Following up on my last with some progress on creating a vector text capability based on the xeogl work. Attached is a simple test with about 200 labels. For our purpose, we're happy with the results. The text has a CAD like appearance and is rendered with a line system. It does also work with Tube for a 3D appearance but the performance was significantly effected as expected. If anyone is interested and needs a simple vector text approach we'd be happy to share the code. Kcoley - I think this should work well with the glTF serializer once you have the time to include line geometry. Cheers, JB
  14. JBatUN

    Data Visualization Authoring Tool

    Leftover - I was very interested in the text work you posted. I could be wrong but it seems like these libs are similar to what you were doing and could be a potential approach to having 2d vector text. Based on your experience, curious what you think about these ... worth looking into further? https://github.com/mikolalysenko/vectorize-text https://github.com/xeolabs/xeogl/blob/81b1469b38c698d22b17a73895d2de18d6423c5d/examples/js/geometry/vectorTextGeometry.js Eager to hear your thoughts. JB
  15. JBatUN

    Data Visualization Authoring Tool

    Wow - this community is awesome! To draw the topojson vector maps I use: var vmap = BABYLON.MeshBuilder.CreateLineSystem("lineSystem", {lines: maplines}, scene); vmap.color = color; In other cases, like the flows among countries I use curves such as: var links = getQuadraticBezierCurve(segments[0], segments[1], segments[2], 16); (BABYLON.Curve3.CreateQuadraticBezier). Basically, I'm using just about every form of geometry that Babylon has to offer. As for the serializer, the lines and curves are the key right now. For visuals that don't have lines the output has been excellent. Great work! It seems the bigger challenge is that tools have exporters (e.g. Maya) but don't have the same capabilities for import. So far each tool I use to view the GLB has a slightly different result. The ClayGL viewer has been among the best, but unfortunately not useful for my purpose. https://pissang.github.io/clay-viewer/editor/ My ultimate goal is to use Blender, Maya or Cinema 4D to produce narrative stories with the visualization. I am experimenting with a timeline / keyframe editor from within the application using https://github.com/zz85/timeliner. Thanks for your support! JB