Jump to content
  • Home
  • Files
  • Docs
Topics
  • All Content

  • This Topic
  • This Forum

  • Advanced Search
  • Existing user? Sign In  

    Sign In



    • Not recommended on shared computers


    • Forgot your password?

  • Sign Up
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • Rotating Item Model Baked Quads
Currently Supported: 1.16.X (Latest) and 1.15.X (LTS)
Sign in to follow this  
Followers 1
poopoodice

Rotating Item Model Baked Quads

By poopoodice, January 13 in Modder Support

  • Reply to this topic
  • Start new topic

Recommended Posts

poopoodice    111

poopoodice

poopoodice    111

  • Dragon Slayer
  • poopoodice
  • Members
  • 111
  • 892 posts
Posted January 13 (edited)

Hey, I'm now trying to add an item model's quads in another item model's IBakedModel#getQuads. In order to do the dynamic part I need to be able to rotate the vertexes, which I'm not sure how to start with. Any information is appreciated : )

Edited January 13 by poopoodice
  • Quote

Share this post


Link to post
Share on other sites

UguDango    1

UguDango

UguDango    1

  • Tree Puncher
  • UguDango
  • Members
  • 1
  • 1 post
Posted January 13

I have literally done this a few hours ago. Here's what to do.
There's a bit of linear algebra involved, so make sure to look that up. Check out 3Blue1Brown's videos. Especially the ones on 3d. They're a 10-minute watch away.

After that, you have two steps to take into consideration:

1. Rotation, which is a simple linear transform (this should be represented by a 3x3 matrix).
2. Displacement, which is an "offset" so-to-speak which you must apply to your vectors, to make up displaced quads. This is necessary because rotating quads using this method will rotate them around the 0 axis of the block (be it in the direction of x, y, or z. It depends on what you need)

Here's a pic of how I messed up the displacement, so you can understand why it's necessary:
unknown.png
The transparent-blueish spots are where the block is, and as you can see the quads are displaced incorrectly. This was however easily fixed once I went over the maths one more time.

I don't think the mojang Vector3d has a transform function, you'll need to write that yourself. But here's my take on it, so it's easier for you:
 

// The CustomVector3D class extends mojang's Vector3d, so the class fields x, y, z are available

public CustomVector3D linearTransform(double[][] mat) {
        if (mat.length != 3
           || mat[0].length != 3
           || mat[1].length != 3
           || mat[2].length != 3) {
            throw new IllegalArgumentException("Transformation matrix needs to be 3x3x3 in size.");
        }
        double xx = mat[0][0] * this.x + mat[0][1] * this.y + mat[0][2] * this.z;
        double yy = mat[1][0] * this.x + mat[1][1] * this.y + mat[1][2] * this.z;
        double zz = mat[2][0] * this.x + mat[2][1] * this.y + mat[2][2] * this.z;
        return new CustomVector3D(xx, yy, zz);
    }


There are some rotation methods, but I haven't taken a good look at them because I feel more comfortable (at the moment) with doing my own maths.
If you have any questions, please let me know.

  • Like 1
  • Quote

Share this post


Link to post
Share on other sites

poopoodice    111

poopoodice

poopoodice    111

  • Dragon Slayer
  • poopoodice
  • Members
  • 111
  • 892 posts
Posted January 15 (edited)

Hey! Thanks for the reply.

I'm pretty much figured out how to rotate them, but another question has appeared just like what you've said: displacement.

Given the quad I'm not sure where can I get the pivot point, although I can manually type the numbers in but I would like them to be more "automatic", is it possible?

Thanks.

 

Edit: Also there is a helper class provided by Forge called QuadTransformer.

Edited January 15 by poopoodice
  • Quote

Share this post


Link to post
Share on other sites

poopoodice    111

poopoodice

poopoodice    111

  • Dragon Slayer
  • poopoodice
  • Members
  • 111
  • 892 posts
Posted Saturday at 03:31 AM
On 1/14/2021 at 12:18 PM, UguDango said:

I don't think the mojang Vector3d has a transform function, you'll need to write that yourself.

Maybe not in Vector3d, but there's one in Vector3f :) 

  • Quote

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

    • Insert image from URL
×
  • Desktop
  • Tablet
  • Phone
Sign in to follow this  
Followers 1
Go To Topic Listing



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • thinkcraftpl
      [1.16.3] Server won't start

      By thinkcraftpl · Posted just now

      This forge version is newest for 1.16.3 and some of mods I want to use don't support higher versions
    • diesieben07
      [1.16.3] Server won't start

      By diesieben07 · Posted 2 minutes ago

      I would recommend you stick with either an LTS version of Java or use the latest, otherwise you will not receive updates. However, your Forge version is outdated anyways, you should update.
    • thinkcraftpl
      [1.16.3] Server won't start

      By thinkcraftpl · Posted 5 minutes ago

      So to use this forge version I need to downgrade java to 11?
    • diesieben07
      Register a Custom Command

      By diesieben07 · Posted 6 minutes ago

      Why are you making your own CommandDispatcher? Of course Minecraft won't know about any commands you register to this custom dispatcher.
    • diesieben07
      [1.16.5] get SeverWorld

      By diesieben07 · Posted 7 minutes ago

      On the server every world is a ServerWorld. You use a cast.
  • Topics

    • thinkcraftpl
      4
      [1.16.3] Server won't start

      By thinkcraftpl
      Started 20 minutes ago

    • monkeysHK
      1
      Register a Custom Command

      By monkeysHK
      Started 9 minutes ago

    • Luis_ST
      1
      [1.16.5] get SeverWorld

      By Luis_ST
      Started 26 minutes ago

    • Klarks
      20
      [1.16.4] what difference between custom slots and EquipmentSlotType

      By Klarks
      Started 11 hours ago

    • Jake_Titan
      2
      my server recently started crashing when I try to launch it

      By Jake_Titan
      Started 29 minutes ago

  • Who's Online (See full list)

    • diesieben07
    • thinkcraftpl
    • Nite_Shad0w
    • Luis_ST
    • Warsade
    • magn919
    • monkeysHK
    • Linky132
    • Jake_Titan
    • ProTankerAlfa
    • dollarflower1
    • MemeMan
    • Klarks
    • FloweyTF
    • zOnlyKroks
    • NubikCZ
    • CatSack
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • Rotating Item Model Baked Quads
  • Theme

Copyright © 2019 ForgeDevelopment LLC · Ads by Longitude Ads LLC Powered by Invision Community