Component:StaticTexture2D: Difference between revisions

From Resonite Wiki
Automated: update component fields
fix table for auto process
 
(4 intermediate revisions by 4 users not shown)
Line 6: Line 6:
|Name=StaticTexture2D
|Name=StaticTexture2D
}}
}}
== Intoduction ==
The '''StaticTexture2D''' Component stores a reference to a static [[Type:IAssetProvider`1|asset]] representing a [[Texture2D|2D Texture]].
The '''StaticTexture2D''' Component stores a reference to a static [[Type:IAssetProvider`1|asset]] representing a 2D Texture.
 
== Usage ==
== Usage ==
{{Table ComponentFields
{{Table ComponentFields
Line 14: Line 14:
|AnisotropicLevel|Int| The level of anisotropy to use when <code>TextureFilterMode</code> is set to '''Anisotropic'''
|AnisotropicLevel|Int| The level of anisotropy to use when <code>TextureFilterMode</code> is set to '''Anisotropic'''
|Uncompressed|Bool| Do not use texture compression
|Uncompressed|Bool| Do not use texture compression
|DirectLoad|Bool|
|DirectLoad|Bool| Whether to load the image directly from it's URI source and to not cache it locally.
|ForceExactVariant|Bool|
|ForceExactVariant|Bool| Only allow one variant of the texture to exist, part of [[Asset Variant|Asset Variant System]].
|PreferredFormat|'''[[Type:Nullable`1|Nullable`1]]&lt;[[Type:TextureCompression|TextureCompression]]&gt;'''|TypeAdv6=true|
|PreferredFormat|'''[[Type:Nullable`1|Nullable`1]]&lt;[[Type:TextureCompression|TextureCompression]]&gt;'''|TypeAdv6=true| The format to use for texture compression rather than the auto picked one
|PreferredProfile|'''[[Type:Nullable`1|Nullable`1]]&lt;[[Type:ColorProfile|ColorProfile]]&gt;'''|TypeAdv7=true|
|PreferredProfile|'''[[Type:Nullable`1|Nullable`1]]&lt;[[Type:ColorProfile|ColorProfile]]&gt;'''|TypeAdv7=true| The color profile to use rather than the auto picked one. (usually linear)
|MipMapBias|Float| Offset to the [[Texture MipMap|MipMap]] calculation.
|MipMapBias|Float| Offset to the [[Texture MipMap|MipMap]] calculation.
|IsNormalMap|Bool| This texture should be interpreted as a [[Normal Map]]
|IsNormalMap|Bool| This texture should be interpreted as a [[Normal Map]]
|WrapModeU|TextureWrapMode| How to handle U values outside of the range [0.0,1.0]
|WrapModeU|TextureWrapMode| How to handle U values outside of the range [0.0,1.0]
|WrapModeV|TextureWrapMode| How to handle V values outisde of the range [0.0,1.0]
|WrapModeV|TextureWrapMode| How to handle V values outisde of the range [0.0,1.0]
|PowerOfTwoAlignThreshold|Float|
|PowerOfTwoAlignThreshold|Float| The threshold for pixel count from range [0.0,1.0] before scaling both axes to a power of 2.
|CrunchCompressed|Bool|
|CrunchCompressed|Bool| Whether to compress the texture to extreme lengths to reduce VRam usage.
|MaxSize|'''[[Type:Nullable`1|Nullable`1]]&lt;[[Type:Int|Int]]&gt;'''|TypeAdv14=true|
|MaxSize|'''[[Type:Nullable`1|Nullable`1]]&lt;[[Type:Int|Int]]&gt;'''|TypeAdv14=true| The maxiumum size to show to the user, which scaled versions are generated by the cloud on the fly from the original and sent as part of the [[Asset Variant|Asset Variant System]]
|MipMaps|Bool|
|MipMaps|Bool| Whether to enable the rendering of mipmaps, which are lower res textures at further distances from the camera to improve performance.
|KeepOriginalMipMaps|Bool|
|KeepOriginalMipMaps|Bool| Whether to use the original mipmaps that came with the image data (yes you could have rainbow mipmaps at further distances) or not.
|MipMapFilter|Filtering|
|MipMapFilter|Filtering| How to apply filtering to the image's mipmaps. please see [[Type:Filtering|Filtering]]!
|Readable|Bool|
|Readable|Bool| Whether this can be read per pixel via things like [[ProtoFlux]]
}}
}}
== Behavior ==
== Behavior ==
Line 34: Line 34:
=== Special Functions ===
=== Special Functions ===
Any of the operations listed below will generate a new static texture asset, and anything referring to this '''StaticTexture2D''' component will be updated with the new texture. The existing asset is deleted from the servers if no other items refer to it.
Any of the operations listed below will generate a new static texture asset, and anything referring to this '''StaticTexture2D''' component will be updated with the new texture. The existing asset is deleted from the servers if no other items refer to it.
=== Troubleshooting ===
When importing images into Resonite, sometimes the image will have a row of pixels taken from the bottom of the image rendered at the top. To fix this issue, go to the FilterMode property on the StaticTexture2D component, click the checkbox, and select "Point". This prevents the issue


 
{{Table ComponentTriggers
{| class="wikitable" style="font-size:10pt;"
|InvertRGB()|null|Inverts the colors of the texture
! colspan="2" style="background: lightblue; font-size:10pt;" | Custom UI Elements
|InvertR()|null|Same as above, but only effects the red channel of the texture
|- style="font-size:10pt; text-align:center; font-weight:bold;"
|InvertG()|null|Same as above, but only effects the green channel of the texture
| Name
|InvertB()|null|Same as above, but only effects the blue channel of the texture
| Description
|InvertA()|null|Same as above, but only effects the alpha channel of the texture
|-
|ColorToAlphaWhite()|null|Converts all pure white colors in the image to alpha
| Invert RGB
|ColorToAlphaBlack()|null|Converts all pure black colors in the image to alpha
| Inverts the colors of the texture
|AlphaFromIntensity()|null|Makes the texture transparent based on the intensity of colors in the image.
|-
|AlphaToMask()|null|Creates a black and white mask texture from an alpha image
| Invert R
|RemoveAlpha()|null|Forces the entire image to full opacity on the alpha channel
| Same as above, but only effects the red channel of the texture
|GrayscaleAverage()|null|Converts the image to grayscale based on the average of the red, green and blue channel.
|-
|SwapRG()|null|Swaps the red and green channels on the image
| Invert G
|SwapRB()|null|Swaps the red and blue channels on the image
| Same as above, but only effects the green channel of the texture
|SwapGB()|null|Swaps the green and blue channels on the image
|-
|ShiftHue()|null|Adjusts the hue of the image by the increment specified in the Input box
| Invert B
|AdjustGamma()|null|Adjusts the gamma the image by the increment specified in the Input box
| Same as above, but only effects the blue channel of the texture
|Resize()|null|Resizes the image such that the longest size of the image is equal to the size specified in the input box.
|-
|FlipHorizontal()|null|Flips the image horizontally
| Invert A
|FlipVertical()|null|Flips the image vertical
| Same as above, but only effects the alpha channel of the texture
|Rotate90CW()|null|Rotates the image by 90° clockwise
|-
|Rotate90CCW()|null|Rotates the image by 90° counterclockwise
| Color to Alpha (White)
|Rotate180()|null|Rotates the image by 180°
| Converts all pure white colors in the image to alpha
|TrimTransparent()|null|Stretches the image such that both sides are equal to the longest side
|-
|ToNearestPOT()|null|Stretches the image on each axis individually, to the next largest power of two.
| Color to Alpha (Black)
|InvalidFloats()|null|Highlights any pixels that are out of range
| Converts all pure black colors in the image to alpha
|GenerateBitmapMetadata()|null|Spawns a [[Texture Metadata]] window displaying the asset's texture metadata as a string
|-
}}
| Alpha from intensity
|  
|-
| Alpha to mask
| Creates a black and white mask texture from an alpha image
|-
| Remove Alpha
| Forces the entire image to full opacity on the alpha channel
|-
| Convert to grayscale (average)
| Converts the image to grayscale based on the average of the red, green and blue channel.
|-
| Swap R and G
| Swaps the red and green channels on the image
|-
| Swap R and B
| Swaps the red and blue channels on the image
|-
| Swap G and B
| Swaps the green and blue channels on the image
|-
| Shift Hue
| Adjusts the hue of the image by the increment specified in the Input box
|-
| Adjust Gamma
| Adjusts the gamma the image by the increment specified in the Input box
|-
| Resize
| Resizes the image such that the longest size of the image is equal to the size specified in the input box.
|-
| Flip Horizontal
| Flips the image horizontally
|-
| Flip Vertical
| Flips the image vertical
|-
| Rotate 90° CW
| Rotates the image by 90° clockwise
|-
| Rotate 90° CCW
| Rotates the image by 90° counterclockwise
|-
| Rotate 180°
| Rotates the image by 180°
|-
| Make square
| Stretches the image such that both sides are equal to the longest side
|-
| To nearest power of two
| Stretches the image on each axis individually, to the next largest power of two.
|-
| Diagnostic: Invalid floats
| Highlights any pixels that are out of range
|-
| Diagnostic: Generate Bitmap Metadata
| Spawns a [[Texture Metadata]] window displaying the asset's texture metadata as a string
|-
|}
== Examples ==
== Examples ==
== Related Components ==
== Related Components ==
</translate>
</translate>
[[Category:Components{{#translation:}}|Static Texture 2D]]
[[Category:Components{{#translation:}}|Static Texture 2D]]
[[Category:Components:Assets{{#translation:}}|StaticTexture2D (Component){{#translation:}}]]
[[Category:Components:Assets{{#translation:}}|Static Texture 2D]]

Latest revision as of 20:40, 5 November 2024


This article or section is a Stub. You can help the Resonite Wiki by expanding it.


Component image 
StaticTexture2D component as seen in the Scene Inspector

The StaticTexture2D Component stores a reference to a static asset representing a 2D Texture.

Usage

Fields
Name Type Description
persistent Bool Determines whether or not this item will be saved to the server.
UpdateOrder Int Controls the order in which this component is updated.
Enabled Bool Controls whether or not this component is enabled.
URL Uri The Asset URI that references the raw texture data
FilterMode TextureFilterMode The type of filtering to use for this texture.
AnisotropicLevel Int The level of anisotropy to use when TextureFilterMode is set to Anisotropic
Uncompressed Bool Do not use texture compression
DirectLoad Bool Whether to load the image directly from it's URI source and to not cache it locally.
ForceExactVariant Bool Only allow one variant of the texture to exist, part of Asset Variant System.
PreferredFormat Nullable`1<TextureCompression> The format to use for texture compression rather than the auto picked one
PreferredProfile Nullable`1<ColorProfile> The color profile to use rather than the auto picked one. (usually linear)
MipMapBias Float Offset to the MipMap calculation.
IsNormalMap Bool This texture should be interpreted as a Normal Map
WrapModeU TextureWrapMode How to handle U values outside of the range [0.0,1.0]
WrapModeV TextureWrapMode How to handle V values outisde of the range [0.0,1.0]
PowerOfTwoAlignThreshold Float The threshold for pixel count from range [0.0,1.0] before scaling both axes to a power of 2.
CrunchCompressed Bool Whether to compress the texture to extreme lengths to reduce VRam usage.
MaxSize Nullable`1<Int> The maxiumum size to show to the user, which scaled versions are generated by the cloud on the fly from the original and sent as part of the Asset Variant System
MipMaps Bool Whether to enable the rendering of mipmaps, which are lower res textures at further distances from the camera to improve performance.
KeepOriginalMipMaps Bool Whether to use the original mipmaps that came with the image data (yes you could have rainbow mipmaps at further distances) or not.
MipMapFilter Filtering How to apply filtering to the image's mipmaps. please see Filtering!
Readable Bool Whether this can be read per pixel via things like ProtoFlux

Behavior

By default Filter is set to Bilinear Filtering, however Anisotropic Filtering results in a much better appearance at very steep angles, and only has a very minor performance impact. If visual fidelity of your texture is a concern, you should set Filter to Anisotropic, and AnisotropicLevel to 4 or 8.

Special Functions

Any of the operations listed below will generate a new static texture asset, and anything referring to this StaticTexture2D component will be updated with the new texture. The existing asset is deleted from the servers if no other items refer to it.

Troubleshooting

When importing images into Resonite, sometimes the image will have a row of pixels taken from the bottom of the image rendered at the top. To fix this issue, go to the FilterMode property on the StaticTexture2D component, click the checkbox, and select "Point". This prevents the issue

Triggers
Name Arguments Description
InvertRGB() null Inverts the colors of the texture
InvertR() null Same as above, but only effects the red channel of the texture
InvertG() null Same as above, but only effects the green channel of the texture
InvertB() null Same as above, but only effects the blue channel of the texture
InvertA() null Same as above, but only effects the alpha channel of the texture
ColorToAlphaWhite() null Converts all pure white colors in the image to alpha
ColorToAlphaBlack() null Converts all pure black colors in the image to alpha
AlphaFromIntensity() null Makes the texture transparent based on the intensity of colors in the image.
AlphaToMask() null Creates a black and white mask texture from an alpha image
RemoveAlpha() null Forces the entire image to full opacity on the alpha channel
GrayscaleAverage() null Converts the image to grayscale based on the average of the red, green and blue channel.
SwapRG() null Swaps the red and green channels on the image
SwapRB() null Swaps the red and blue channels on the image
SwapGB() null Swaps the green and blue channels on the image
ShiftHue() null Adjusts the hue of the image by the increment specified in the Input box
AdjustGamma() null Adjusts the gamma the image by the increment specified in the Input box
Resize() null Resizes the image such that the longest size of the image is equal to the size specified in the input box.
FlipHorizontal() null Flips the image horizontally
FlipVertical() null Flips the image vertical
Rotate90CW() null Rotates the image by 90° clockwise
Rotate90CCW() null Rotates the image by 90° counterclockwise
Rotate180() null Rotates the image by 180°
TrimTransparent() null Stretches the image such that both sides are equal to the longest side
ToNearestPOT() null Stretches the image on each axis individually, to the next largest power of two.
InvalidFloats() null Highlights any pixels that are out of range
GenerateBitmapMetadata() null Spawns a Texture Metadata window displaying the asset's texture metadata as a string

Examples

Related Components