Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 02 18:07

    holance on develop

    Update CHANGELOG.md (compare)

  • Aug 01 21:58
    holance closed #1623
  • Aug 01 21:58

    holance on develop

    Fix topmost group is not render… Merge pull request #1624 from h… (compare)

  • Aug 01 21:58
    holance closed #1624
  • Aug 01 20:44
    holance labeled #1622
  • Aug 01 20:44
    holance labeled #1623
  • Aug 01 20:44
    holance labeled #1623
  • Aug 01 20:44
    holance opened #1624
  • Jul 31 09:11
    Zaug49 commented #1622
  • Jul 30 17:44
    chrkon commented #1622
  • Jul 30 07:45
    Zaug49 commented #1622
  • Jul 29 21:08
    chrkon commented #1622
  • Jul 29 21:05
    chrkon opened #1623
  • Jul 29 17:12
    Zaug49 commented #1622
  • Jul 29 17:03
    holance commented #1622
  • Jul 29 16:02
    Zaug49 commented #1622
  • Jul 29 13:20
    Zaug49 commented #1622
  • Jul 29 13:20
    Zaug49 commented #1622
  • Jul 29 07:42
    chrkon commented #1622
  • Jul 28 12:29
    Zaug49 reopened #1622
Lunci
@holance
@robotron2084 Are you sure the model in the PR is the correct one? I use AutoDesk FBX viewer to open the model, getting same result. Not able to see the morph animation in the video you provided.
Jordan Chapman
@Nordaj
i pulled everything from current develop branch and am seeing it animated as a bronze character correctly
Are you seeing a static mesh? Is it doing skeletal animation correctly? But nothing with morph target?
Jordan Chapman
@Nordaj
When importing to blender im seeing the same thing (animated bones and morph)
im setting up a new clone to ensure ive got absolutely no differences that git might not be tracking
Jordan Chapman
@Nordaj
It is working on a clean clone as well
Maybe its a visual studio version difference or you may have some local /untracked changes. im using visual studio community 2019 16.8.2
Lunci
@holance
@Nordaj I am seeing skeletal animation, but no morph
Lunci
@holance
ok, I find the issue. The HLSL is only supported by discreet graphics card, if I run it using intel integrated graphics card, morph will not work.
I will push out a fix for it.
Shreyasj96
@Shreyasj96
@holance Hi. I have a fbx file which contains animation of multiple objects. But when I load it, its not showing any animation, sometimes even the model is not displayed. PS: I tested it by editing the path of importer.Load in MainViewModel of BoneSkinDemo.
Chris Hill
@robotron2084
@holance Did you get that fixed? We are looking into testing this on integrated gpus, which apparently might need some love.
Chris Hill
@robotron2084
@Shreyasj96 Are any exceptions being thrown?
Lunci
@holance
@robotron2084 The fix has been merged
Chris Hill
@robotron2084
oh great! thank you @holance
Shreyasj96
@Shreyasj96
@robotron2084 No Exceptions were thrown. It looks like some build issue. It seems to be working now. Thank you
Shreyasj96
@Shreyasj96
@holance The animations of .glb files are rendered slower(Even if the original animation while the time of creation is running at normal speed). Do we need to change any property to adjust the animation speed?. I don't see this issue with .fbx files tho.
Lunci
@holance
@Shreyasj96 Could you provide same sample model for us to debug?
Shreyasj96
@Shreyasj96
@holance Hi..Do you have 3D Viewer installed on your PC?. If yes, on opening you will see a Bee.glb (the default file). You can also test for an existing .fbx file by converting it into .glb and then loading it.
Shreyasj96
@Shreyasj96
Link: https://free3d.com/3d-model/wolf-rigged-and-game-ready-42808.html
I downloaded the gltf zip file for testing.
Tai Le
@atlesg

Hi!

Assume I have a model like this in Viewport3D. Now I want to have a Line or a Ray from the up high to bottom plane (Z = infinity → Z = 0). I want to return the intersection point of the ray/line and the the first facet it touches (probably the facet on top of the model)
How can I do that as I probably search around google but no solution so far.

I did try:

        for (int i = 0; i < myPaintModelMeshGeometry3D.TriangleIndices.Count; i = i + 3)
        {
            int index1 = myPaintModelMeshGeometry3D.TriangleIndices[i];
            int index2 = myPaintModelMeshGeometry3D.TriangleIndices[i + 1];
            int index3 = myPaintModelMeshGeometry3D.TriangleIndices[i + 2];

            Point3D point1 = myPaintModelMeshGeometry3D.Positions[index1];
            Point3D point2 = myPaintModelMeshGeometry3D.Positions[index2];
            Point3D point3 = myPaintModelMeshGeometry3D.Positions[index3];
            Vector3D vectorA = point2 - point1;
            Vector3D vectorB = point3 - point1;

            Vector3D normal = Vector3D.CrossProduct(vectorA, vectorB);
            normal.Normalize();

            Plane3D facet = new Plane3D();
            facet.Normal = normal;
            facet.Position = point1;

            Ray3D ray3D = new Ray3D();
            ray3D.Direction = new Vector3D(0, 0, 1);
            ray3D.Origin = new Point3D(250, 0, 0);

            Point3D? IsIntersection = facet.LineIntersection(ray3D.Origin, ray3D.Origin + ray3D.Direction * myPaintModelBoundingBox.SizeZ);
          }

But the result is a lots of "intersection" points since the Plane3D spreads to infinity, so each iteration of the facet cut the ray at one point....
image.png

Lunci
@holance
@atlesg You need to use ray intersect with triangle instead of plane. Collision.RayIntersectsTriangle
Tai Le
@atlesg

@atlesg You need to use ray intersect with triangle instead of plane. Collision.RayIntersectsTriangle

Thank you! I will take a try!

Edit: is that method only usuable in SharpDX? I'm not using SharpDX so I can't generate the code for that :(

Lunci
@holance
@Shreyasj96 It is a bug from assimp itself. assimp/assimp#3162
Lunci
@holance
If I load the wolf fbx file, the animation speed is correct. Seems like the Assimp version used by the Assimp.Net is having issue with gltf or glb.
Gravemind2401
@Gravemind2401
in TransformManipulator.cs under private void OnTargetChanged(Element3D target) is there a particular reason the event subscribe for SceneNode.TransformChanged is commented out? will it cause problems if I enable it again in my custom manipulator?
i have the target object's transform bound to my model so it can get changed by both the manipulator and by textboxes with coordinates in them but by default the manipulator doesn't move when the transform gets changed by another source
Gravemind2401
@Gravemind2401
nevermind i found out why. moving the manipulator sets off the transform changed event which makes everything get called twice
Gravemind2401
@Gravemind2401
i just put a if (isCaptured) return; in the event handler so it only gets run if some other function changes the transform and that seems to do the trick
Shreyasj96
@Shreyasj96
@holance Oh I see. Was it fixed. It looked it it was fixed here assimp/assimp#3383 . Even I tried manipulating the importer.Configuration.TickesPerSecond, no improvement.
Shreyasj96
@Shreyasj96
Looks like it will be merged in the next release.
Gravemind2401
@Gravemind2401
what would be the best way for a custom element to dynamically show/hide itself when the camera moves? I have a custom element type that inherits GroupElement3D, so i was thinking maybe override OnCreateSceneNode and provide a custom scene node that makes itself renderable or not.
I found that I can override bool CanRender(RenderContext context) but im not sure how often this gets called or if thats the right place to do it
theres also bool TestViewFrustum(ref BoundingFrustum viewFrustum) which might work if it gets called every time the camera moves and hence the frustrum changes
what causes these to get called, and am i even looking in the right place?
Gravemind2401
@Gravemind2401
just saw void Update(RenderContext context) too which may be more appropriate?
Lunci
@holance
All those are called for each rendering. @Gravemind2401
Gravemind2401
@Gravemind2401
by “each rendering” do you mean it gets called for every node on every frame? is there a particular one that would be best suited for visibility testing? what do the return values do for the two bool ones?
@13134423523 you mentioned you can use a logarithmic depth buffer, is this on by default and if not how do you enable it and tune it? do you have some code you can share?
Lunci
@holance
@Gravemind2401 Depends on what property you want to test. Either can render or frustum test will work.
Gravemind2401
@Gravemind2401
so if i return false the node just doesnt get drawn for that render pass? sounds like what i need, thanks
Lunci
@holance
@Gravemind2401 Yes
Dimoniums
@Dimoniums
Hi, im a beginner developer. I started putting together a post processor in WPF with the Helix Toolkit. I quickly realized that I need SharpDX for the VertexColor . When I swapped to this part of the toolkit I am no longer able to bind the "ItemSource" property of the viewport. What is the right way to programmatically add objects to the viewport using Data Binding?
Dimoniums
@Dimoniums
Found the solution on SampleDemo
<hx:ItemsModel3D ItemTemplate="{StaticResource Geometry3DTemplate}" ItemsSource="{Binding HelixObjects}"/>
With a converter <hx:MeshGeometryModel3D Geometry="{Binding Geometry}" Transform="{Binding Transform}" Material="{Binding Material}"/>
Gravemind2401
@Gravemind2401
is there a way to save the current viewport contents using assimp? i thought i saw a function for it when i was poking around a while back but now i cant find it
Gravemind2401
@Gravemind2401
found it under HelixToolkit.SharpDX.Core.Assimp in the source code but im using the HelixToolkit.Wpf.SharpDX package so its not available
Gravemind2401
@Gravemind2401
oh its also under HelixToolkit.Wpf.SharpDX.Assimp but apparently still doesnt exist in the package im using
oh. its a separate package. nvm
Åse Maj Håkonsbakken
@bugbiter
Using sharpDX wpf, is there a way to separate grouped entities in an imported model mesh (from e.g. an .stl file), so that they can retrieve their names and can be assigned different materials. Autodesk Meshmixer, for instance, has a command "edit -> separate shells", which does this successfully for the files I am testing with.