Results 1 to 5 of 5

Thread: Rendering of a complex .dae file

  1. #1
    h.shah
    Guest

    Rendering of a complex .dae file

    Hi All,
    I have been working on rendering of .dae files (XNA engine) by extracting .kmz files exported from Google Sketchup ver 6 and 7.

    To accomplish this, processing data from <library_materials>, <library_effects> and <library_geometries> xml sections of a .dae file were sufficient to render a basic 3D model and <library_nodes>, <library_cameras> and <library_visual_scenes> have been ignored completely.

    Question:
    I have come across a google sketchup exported complex .kmz for which the .dae file does not render properly. It has been observed that .dae file contained child nodes <node><node> (groups) which refer to the meshes under <library_geometries>.

    1. How do we deal with the child nodes for rendering a basic 3D Model?
    2. Is there any relation between child node groups and mesh formation? Anything like repeated meshes for a group?

    Your suggestions would be much appreciated.

    Thanks
    Harshal

    *****************************************
    Harshal Shah
    Module Lead
    Fugro Survey (India) Pvt. Ltd.
    Fugro Intersite India SDC
    Fugro House, D-222/30, TTC Industrial Area,
    MIDC, Nerul, Navi Mumbai, Maharashtra, India, 400706.
    +91 22 2762-9736 (Direct)
    +91 9819737696 (Mobile)
    +91 22 27688282 (Fax)
    ******************************************

  2. #2
    Senior Member
    Join Date
    Aug 2004
    Location
    California
    Posts
    771

    Re: Rendering of a complex .dae file

    Can you post an example of the .dae content that is exported?

  3. #3
    h.shah
    Guest

    Re: Rendering of a complex .dae file

    Hi All,

    Please find below the xml node segments that contained parent/child node relationship.
    Please suggest your ideas on rendering model file accordingly.

    <node id="Group14" name="Group14">
    <node id="mesh148" name="mesh148">
    <instance_geometry url="#mesh148-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_17_0" target="#material_17_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh149" name="mesh149">
    <instance_geometry url="#mesh149-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_17_0" target="#material_17_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh150" name="mesh150">
    <instance_geometry url="#mesh150-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_0_0" target="#material_0_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    </node>
    <node id="Group15" name="Group15">
    <node id="mesh151" name="mesh151">
    <instance_geometry url="#mesh151-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_17_0" target="#material_17_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh152" name="mesh152">
    <instance_geometry url="#mesh152-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_17_0" target="#material_17_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh153" name="mesh153">
    <instance_geometry url="#mesh153-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_0_0" target="#material_0_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    </node>
    <node id="Group16" name="Group16">
    </node>
    <node id="Group17" name="Group17">
    <node id="mesh154" name="mesh154">
    <instance_geometry url="#mesh154-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_18_8" target="#material_18_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh155" name="mesh155">
    <instance_geometry url="#mesh155-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh156" name="mesh156">
    <instance_geometry url="#mesh156-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh157" name="mesh157">
    <instance_geometry url="#mesh157-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh158" name="mesh158">
    <instance_geometry url="#mesh158-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh159" name="mesh159">
    <instance_geometry url="#mesh159-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh160" name="mesh160">
    <instance_geometry url="#mesh160-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_18_8" target="#material_18_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh161" name="mesh161">
    <instance_geometry url="#mesh161-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh162" name="mesh162">
    <instance_geometry url="#mesh162-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh163" name="mesh163">
    <instance_geometry url="#mesh163-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh164" name="mesh164">
    <instance_geometry url="#mesh164-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_19_8" target="#material_19_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh165" name="mesh165">
    <instance_geometry url="#mesh165-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_18_8" target="#material_18_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh166" name="mesh166">
    <instance_geometry url="#mesh166-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_18_8" target="#material_18_8ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    </node>
    <node id="Group18" name="Group18">
    <node id="Group19" name="Group19">
    <node id="mesh167" name="mesh167">
    <instance_geometry url="#mesh167-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_20_0" target="#material_20_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh168" name="mesh168">
    <instance_geometry url="#mesh168-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_20_0" target="#material_20_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh169" name="mesh169">
    <instance_geometry url="#mesh169-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh170" name="mesh170">
    <instance_geometry url="#mesh170-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh171" name="mesh171">
    <instance_geometry url="#mesh171-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh172" name="mesh172">
    <instance_geometry url="#mesh172-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh173" name="mesh173">
    <instance_geometry url="#mesh173-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh174" name="mesh174">
    <instance_geometry url="#mesh174-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh175" name="mesh175">
    <instance_geometry url="#mesh175-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh176" name="mesh176">
    <instance_geometry url="#mesh176-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh177" name="mesh177">
    <instance_geometry url="#mesh177-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh178" name="mesh178">
    <instance_geometry url="#mesh178-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    </node>
    <node id="Group20" name="Group20">
    <node id="mesh179" name="mesh179">
    <instance_geometry url="#mesh179-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_20_0" target="#material_20_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh180" name="mesh180">
    <instance_geometry url="#mesh180-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_20_0" target="#material_20_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh181" name="mesh181">
    <instance_geometry url="#mesh181-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh182" name="mesh182">
    <instance_geometry url="#mesh182-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh183" name="mesh183">
    <instance_geometry url="#mesh183-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh184" name="mesh184">
    <instance_geometry url="#mesh184-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh185" name="mesh185">
    <instance_geometry url="#mesh185-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh186" name="mesh186">
    <instance_geometry url="#mesh186-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh187" name="mesh187">
    <instance_geometry url="#mesh187-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh188" name="mesh188">
    <instance_geometry url="#mesh188-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh189" name="mesh189">
    <instance_geometry url="#mesh189-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    <node id="mesh190" name="mesh190">
    <instance_geometry url="#mesh190-geometry">
    <bind_material>
    <technique_common>
    <instance_material symbol="material_21_0" target="#material_21_0ID"/>
    </technique_common>
    </bind_material>
    </instance_geometry>
    </node>
    </node>
    </node>



    Regards
    Harshal

  4. #4
    Senior Member
    Join Date
    Aug 2004
    Location
    California
    Posts
    771

    Re: Rendering of a complex .dae file

    Quote Originally Posted by h.shah
    Hi All,
    I have been working on rendering of .dae files (XNA engine) by extracting .kmz files exported from Google Sketchup ver 6 and 7.

    To accomplish this, processing data from <library_materials>, <library_effects> and <library_geometries> xml sections of a .dae file were sufficient to render a basic 3D model and <library_nodes>, <library_cameras> and <library_visual_scenes> have been ignored completely.
    You can't ignore the visual scene since that is where COLLADA describes the the scene that is rendered. By ignoring that you are ignoring the placement of geometry in the world coordinate system.

    The <scene> element describes the default (visual, kinematic,physics) scene to instantiate.

  5. #5
    Senior Member
    Join Date
    Aug 2004
    Location
    California
    Posts
    771

    Re: Rendering of a complex .dae file

    Quote Originally Posted by h.shah
    1. How do we deal with the child nodes for rendering a basic 3D Model?
    Starting with a <visual_scene>, default is from <scene>, concatenate node local coordinate systems and instantiate geometry, lights, cameras, and nodes in the respective local coordinate systems.
    Quote Originally Posted by h.shah
    2. Is there any relation between child node groups and mesh formation? Anything like repeated meshes for a group?
    Nodes are local coordinate systems (places) and geometry is instantiated there. A child node coordinate system is transformed by its parent node's coordinate system. The <visual_scene> contains the root node of the transform hierarchy. There are no controls or flags that affect mesh vertices or primitives.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •