I quickly tried downloading, cloning and building it and all the 
dependencies but failed. Is it in a state right now where it should build? 
I'm certainly no Vulkan expert (most I've done is a bit of OpenGL and some 
higher level DX11 stuff). I guess for now I'll focus on trying to pinpoint 
the issue with irrlicht. I'm already a step further than I was yesterday 
with the workaround above, so I have something to zoom into. Again, thanks 
for the help!

Greetings, Marcel

On Saturday, June 18, 2022 at 5:28:44 PM UTC+2 Radu Serban wrote:

> Chrono::VSG is being developed in the feature/vsg branch.  Right now, it’s 
> pretty much a one-man job, with Rainer - our collaborator in Germany – 
> doing all the heavy lifting. If you are interested and willing to help, 
> that would be great!
>
>  
>
> Best,
>
> --Radu
>
>  
>
>  
>
> *From:* [email protected] <[email protected]> *On 
> Behalf Of *Marcel Offermans
> *Sent:* Saturday, June 18, 2022 5:08 PM
> *To:* ProjectChrono <[email protected]>
> *Subject:* Re: [chrono] Materials and textures for most loaded OBJ files 
> are not rendered...
>
>  
>
> Indeed I was referring to #2 and I'm aware that this is far from trivial. 
> It's a bit of a side step, but to explore Chrono it would be really helpful 
> for me to be able to load arbitrary 3D OBJ files, mainly for terrain 
> models, and have those rendered with textures (as without they become grey 
> blobs that are hard to drive for a human driver). Based on your info, a 
> workaround for the vehicles is to modify 
> ChVehicleGeometry::AddVisualizationAssets(...) and basically make it do the 
> same for both m_has_obj and m_has_mesh:
>
>     if (vis == VisualizationType::MESH && (m_has_obj || m_has_mesh)) {
>         auto obj_shape = chrono_types::make_shared<ChObjFileShape>();
>         obj_shape->SetFilename(vehicle::GetDataFile(m_vis_mesh_file));
>         body->AddVisualShape(obj_shape, ChFrame<>());
>         return;
>     }
>
> Which simply confirms what you wrote earlier, that having irrlicht load 
> the object directly does seem to work. I took the demo_VEH_CityBus as an 
> example. One thing that I did have to change is to remove all but the 
> diffuse texture from the material (deleting the lines that are so subtly 
> marked in red below):
>
>  
>
> # Blender MTL File: 'None'
> # Material Count: 1
> newmtl lambert15SG
> Ns 0.000000
> Ka 1.000000 1.000000 1.000000
> Kd 0.500000 0.500000 0.500000
> Ks 0.000000 0.000000 0.000000
> Ke 0.000000 0.000000 0.000000
> Ni 1.000000
> d 1.000000
> illum 1
> map_Kd textures/Bus_Texturing_Bus_Chassis_BaseColor.jpg
> map_Pr textures/Bus_Texturing_Bus_Chassis_Roughness.jpg
> map_Pm textures/Bus_Texturing_Bus_Chassis_Metallic.jpg
> map_d textures/Bus_Chassis_Opacity.jpg
>
>  
>
> When I do that, I get a bus (with opaque windows and no real material 
> properties but) with a texture!
>
>  
>
> And thanks for clarifying what VSG is, I was not aware of that project 
> yet. I am following the progress of some completely different library 
> (Godot game engine) to Vulkan, and that's a long journey for them. That 
> said, Vulkan is a much more modern graphics engine. Is that something 
> that's being developed somewhere out in the open (Chrono integration with 
> VSG)?
>
>  
>
> Greetings, Marcel
>
>  
>
> On Saturday, June 18, 2022 at 4:46:21 PM UTC+2 Radu Serban wrote:
>
> Marcel, assuming you are talking about option #2 I listed below, keep in 
> mind that this is not a trivial task unless you have some experience with 
> rendering pipelines in general and Irrlicht in particular.  Also, this will 
> not teach you much about Chrono.  
> However, if you are interested in learning more about that kind of things, 
> by all means, give it a shot.
>
>  
>
> VSG is VulkanSceneGraph. See https://vsg-dev.github.io/VulkanSceneGraph/
>
> --Radu
>
>  
>
> *From:* [email protected] <[email protected]> *On 
> Behalf Of *Marcel Offermans
> *Sent:* Saturday, June 18, 2022 2:30 PM
> *To:* ProjectChrono <[email protected]>
> *Subject:* Re: [chrono] Materials and textures for most loaded OBJ files 
> are not rendered...
>
>  
>
> Thank you for providing these pointers. I will have a go at this although, 
> since I'm new to the project, I can't promise I can figure it out. :)
>
> What is a "VSG-based system" out of interest?
>
>  
>
> Greetings, Marcel
>
> On Saturday, June 18, 2022 at 2:09:36 PM UTC+2 Radu Serban wrote:
>
> Marcel,
>
>  
>
> Indeed, this is a known current limitation (bug if you wish) in the 
> Irrlicht run-time visualization module.
> I have recently redesigned the entire framework for specifying 
> visualization models and rendering. The code is set up to make use of both 
> the OBJ and any MTL file, but there’s still something I must be missing 
> when creating the Irrlicht materials and mesh buffers that prevents 
> rendering of material textures. 
>
>  
>
> I can think of 3 options for now:
>
>    - I will look again at this issue when I get a chance.  However, it’s 
>    not a top priority right now (also because the expectation is that we will 
>    eventually replace Irrlicht run-time visualization with a VSG-based 
>    system).  So, you may have to wait a bit longer.
>    - You (or someone else familiar with Irrlicht) could help with a fix 
>    for this through a pull request 😊
>    For whoever is interested, the two relevant parts in the code to look 
>    at are:
>
>
>    - Lines 717-739 in ChVisualSystemIrrlicht.cpp 
>       
> <https://github.com/projectchrono/chrono/blob/1eb75c2c9fa80cc2c8b710baf07b3072db2093d4/src/chrono_irrlicht/ChVisualSystemIrrlicht.cpp#L717>
>  
>       (where the Irrlicht mesh buffers are created)
>       - Function ChIrrNodeShape::UpdateTriangleMesh_mat of 
>       ChIrrNodeShape.cpp 
>       
> <https://github.com/projectchrono/chrono/blob/1eb75c2c9fa80cc2c8b710baf07b3072db2093d4/src/chrono_irrlicht/ChIrrNodeShape.cpp#L209>
>  
>       (where the Irrlicht materials and buffers are populated)
>    
>
>    - Instead of using a trimesh asset read from file (in which case 
>    Chrono constructs an internal mesh representation and also reads in visual 
>    materials which are later passed on the run-time visualization system to 
> be 
>    converted in their own objects), use a ChObjFileShape and attach that as a 
>    visual shape to your model.   The difference is that a ChObjFileShape is 
>    only a reference to a Wavefront OBJ file which is passed as such to the 
>    visualization system;  if it knows how to do that, it is the renderer 
>    responsibility (in this case Irrlicht) to open that OBJ file (and any 
>    associated MTL files) and create its own internal meshes and materials.  
>    Irrlicht knows how to do that, and the material textures show up fine if 
>    going this route.
>    For an example of this, look at the “Gator” vehicle model and 
>    something like demo_VEH_Gator.
>
>  
>
> --Radu
>
>  
>
> *From:* [email protected] <[email protected]> *On 
> Behalf Of *Marcel Offermans
> *Sent:* Friday, June 17, 2022 11:01 PM
> *To:* ProjectChrono <[email protected]>
> *Subject:* [chrono] Materials and textures for most loaded OBJ files are 
> not rendered...
>
>  
>
> Hi all, can anybody tell me how to enable the correct rendering of 
> textures and materials that are defined within the various OBJ files? They 
> are missing for most demos, and I tried both the latest 7.0.3 release as 
> well as "develop". Is this a bug? 
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "ProjectChrono" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/projectchrono/9e0c9aab-d5ad-4bc2-bcd0-b9dcdda77b9bn%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/projectchrono/9e0c9aab-d5ad-4bc2-bcd0-b9dcdda77b9bn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "ProjectChrono" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/projectchrono/e27f6e3e-b40d-43e8-93fb-94041662c974n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/projectchrono/e27f6e3e-b40d-43e8-93fb-94041662c974n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "ProjectChrono" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/projectchrono/b8d933cb-e60f-46e8-9102-a00776cee499n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/projectchrono/b8d933cb-e60f-46e8-9102-a00776cee499n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/projectchrono/4f5454cf-0375-4c57-b413-f3e7e65912f5n%40googlegroups.com.

Reply via email to