Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: texture mapping movement tween support #230

Merged
6 changes: 2 additions & 4 deletions proto/decentraland/common/texture.proto
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,8 @@ message Texture {
optional TextureFilterMode filter_mode = 3; // default = FilterMode.Bilinear

// Final uv = offset + (input_uv * tiling)
// Offset for texture positioning.
optional Vector2 offset = 4; // default = Vector2.Zero
// Tiling multiplier for texture repetition.
optional Vector2 tiling = 5; // default = Vector2.One
optional Vector2 offset = 4; // default = Vector2.Zero; Offset for texture positioning, only works for the texture property in PbrMaterial or UnlitMaterial.
optional Vector2 tiling = 5; // default = Vector2.One; Tiling multiplier for texture repetition, only works for the texture property in PbrMaterial or UnlitMaterial.
Comment on lines +23 to +24
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not totally sure about keeping the extra info about other components here. For now, it's better to keep it than not having it at all

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea was to have that documentation for creators when working with alpha_texture, emissive_texture, bump_texture, since the tiling and offset properties would show up with the autocomplete.

}

message AvatarTexture {
Expand Down
13 changes: 6 additions & 7 deletions proto/decentraland/sdk/components/material.proto
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,18 @@ message PBMaterial {
optional float alpha_test = 2; // default = 0.5. range value: from 0 to 1
optional bool cast_shadows = 3; // default = true
optional decentraland.common.Color4 diffuse_color = 4; // default = white;
optional decentraland.common.TextureUnion alpha_texture = 5; // default = null
optional decentraland.common.TextureUnion alpha_texture = 5; // default = null. Note that tilling and offset properties are ignored for this texture.
}

message PbrMaterial {
optional decentraland.common.TextureUnion texture = 1; // default = null

optional float alpha_test = 2; // default = 0.5. range value: from 0 to 1
optional bool cast_shadows = 3; // default = true
// @deprecated Alpha textures are no longer supported on PBRMaterial and UnlitMaterial.alphaTexture should be used instead.
optional decentraland.common.TextureUnion alpha_texture = 4; // default = null
optional decentraland.common.TextureUnion emissive_texture = 5; // default = null
optional decentraland.common.TextureUnion bump_texture = 6; // default = null

optional decentraland.common.TextureUnion alpha_texture = 4; // @deprecated Alpha textures are no longer supported on PBRMaterial and UnlitMaterial.alphaTexture should be used instead.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the @deprecated comment works if you put it in the same line ?
You should see this message in the scene when you put the mouse over this prop, or in the typings file.
(Asking becuase i'm not sure how its being propagated)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for sharing your concerns!
As far as I know (after reading the documentation and doing a brief research), these are just comments, they don't actually do anything and it's up to the interpreter for each language what they do with it. The generated code in the client will always have these fields.
It's actually recommended to actually remove the deprecated properties and just reserve the id numbers.
I'll let @leanmendoza provide some feedback on the subject.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reserve should be put after one or two minor SDK releases. (and previously communicated the breaking change). It's not a big deal because it's breaking only dead code (assuming this functionality has already passed away).

About the comment, I think both, same line and previous line, forward the comment to generated code in the SDK. It's worth to confirm.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw, it's something that if it doesn't fit the forwarding needs, it's can be re-visited in the future without introducing breaking changes

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Here's the generated code in the client

optional decentraland.common.TextureUnion emissive_texture = 5; // default = null. Note that tilling and offset properties are ignored for this texture.
optional decentraland.common.TextureUnion bump_texture = 6; // default = null. Note that tilling and offset properties are ignored for this texture.

optional decentraland.common.Color4 albedo_color = 7; // default = white;
optional decentraland.common.Color3 emissive_color = 8; // default = black;
Expand All @@ -54,5 +54,4 @@ message PBMaterial {
UnlitMaterial unlit = 1;
PbrMaterial pbr = 2;
}

}
}
14 changes: 14 additions & 0 deletions proto/decentraland/sdk/components/tween.proto
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ message PBTween {
Move move = 3;
Rotate rotate = 4;
Scale scale = 5;
TextureMove texture_move = 8;
}

optional bool playing = 6; // default true (pause or running)
Expand All @@ -37,6 +38,19 @@ message Scale {
decentraland.common.Vector3 end = 2;
}

// This tween mode allows to move the texture of a PbrMaterial or UnlitMaterial.
// You can also specify the movement type (offset or tiling)
message TextureMove {
decentraland.common.Vector2 start = 1;
decentraland.common.Vector2 end = 2;
optional TextureMovementType movement_type = 3; // default = TextureMovementType.TMT_OFFSET
}

enum TextureMovementType {
TMT_OFFSET = 0; // default = TextureMovementType.TMT_OFFSET
TMT_TILING = 1;
}

// Implementation guidelines for these easing functions can be found
// at https://github.com/ai/easings.net/blob/6fcd5f852a470bf1a7890e8178afa0f471d5f2ec/src/easings/easingsFunctions.ts
enum EasingFunction {
Expand Down
Loading