► Texture Adjustments ◄

This is Texture Adjustments support forum.

Ask any questions before purchase.
Online documentation is here.
Try free demo version (link).

Amazing Assets - YouTube Facebook Twitter

2 Likes

Looks interesting.
So, as far as I understood, at run-time all the adjustments are applied in real-time through shaders, while in the editor it allows you to save a texture?
Also, I think it would be a great idea to be able to select a color range that you want to apply hue-shift to. Will this be possible?

Run-time API uses RenderTexture to calculate everything using shaders on the GPU.
Editor does the same. +You can save results in a separate texture(PNG) file.
Hue-shift using color range is not included. I’ll add it to a ‘wish list’.

VacuumShaders - Facebook Twitter YouTube

I’m still not quite sure how the RunTime part works and what is the performance hit when using it.
Does it work on mobile? Do you have a RenderTexture as a full-screen image effect?

RenderTexture does not mean full-screen image, it is a ‘texture’ allocated on the GPU and its purpose is to handle runtime computations. It has highest performance comparing to the CPU textures (that’s why image effects use them).

If mobile supports render texture than you can use plugins run-time API. You can check it: http://docs.unity3d.com/ScriptReference/SystemInfo-supportsRenderTextures.html
Otherwise you can use shaders.

VacuumShaders - Facebook Twitter YouTube

Update v1.1 released
• Added GPU accelerated texture resize support.
• Added overlay texture support.
• Editor and run-time API check if system supports RenderTextures before applying adjustments to avoid Unity freezing.
• Fixed shader error - Unmatched #endif (on gles3)
• Unity 5.1 standard shader GUI support.

Note:
GPU accelerated texture resize comparison with CPU version available on wiki.unity3d.com
Resizing 8192 texture to 512 (example texture) on i7 2.40GHz with GTX 660M
GPU accelerated conversion time - 0.007sec
CPU version (wiki.unity3d.com) - 0.654sec

Texture Adjustments version is about x100 faster!

VacuumShaders - Facebook Twitter YouTube

Texture Adjustments copy giveaway!
Voucher code (1 from 5): Redeemed

VacuumShaders - Facebook Twitter YouTube

Texture Adjustments copy giveaway!
Voucher code (2 from 5): Redeemed

VacuumShaders - Facebook Twitter YouTube

Texture Adjustments copy giveaway!
Voucher code (3 from 5): Redeemed

VacuumShaders - Facebook Twitter YouTube

Texture Adjustments copy giveaway!
Voucher code (4 from 5): Redeemed

VacuumShaders - Facebook Twitter YouTube

Texture Adjustments copy giveaway!
Voucher code (last one): Redeemed

VacuumShaders - Facebook Twitter YouTube

Hello, I have some problems with your plugin

I use it for scale runtime generated atlases. Why I can not set specific options for destanation texture like use mipmaps or not?

When I scale texture with no mipmaps to texture with no mipmaps I get texture with mipmaps counr 5!

I forgot about mipmaps :roll_eyes:, tomorrow I’ll release update to fix that.

VacuumShaders - Facebook Twitter YouTube

Oh, thanks :slight_smile:

Can I ask you a question? Can I get method like:

CopyAndScale(ref byte[ ] texture1, ref byte[ ] texture2, int destWidth, int destHieght)

It would be perfect! My problem is I create texture from bytes bigger size that I need and then scale it.

Update v1.2 released
• Texture resize functions support generating mipmap option, filter mods and bypassing sRGB sampling.

VacuumShaders - Facebook Twitter YouTube

Bytes array scaling can not be accelerated on the GPU, you will have to manually convert them to textures.

VacuumShaders - Facebook Twitter YouTube

Yes, but I can reduce memory usage.

If I create texture manually (atlases in my case), I need create texture from byte array, then rescale it, and then delete destanation texture. So in one monent I will have two textures in memory, that’s my problem.

I’ll have to do exactly the same inside function:

  1. Convert bytes to texture
  2. Send it to GPU for scaling
  3. Convert received texture to bytes array.
    So adding your requested function will save you just two lines of code, nothing more, neither performance nor memory.

VacuumShaders - Facebook Twitter YouTube

In this case yes, I don’t need to save two line of code.

But if you can scale byte array, without sending it to GPU and converting to texture, I can save memory for creating big texture from bytes. I’m talking about some alternative function.

It will be a very good:)