Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Shade - Pro Shader Editing for iOS (Version 1.3 now out)



  • SimeonSimeon Admin Mod
    Posts: 5,782

    @Bri_G you can set the blend mode of a craft.material to NORMAL, ADDITIVE or MULTIPLY

    Give this a try? Not sure if the exported shader from Shade configures this aspect of the material. Otherwise @John will know more

    local m = craft.material("Your Hologram")
    m.blendMode = ADDITIVE
  • Posts: 2,728

    @Simeon - tried that out ADDITIVE, NORMAL both had no effect. MULTIPLY made the whole screen darker. Possibly the condition is built into the Shader. Thanks for the heads up.

  • Posts: 2,728

    @Simeon @John - just got a funny from Shade, playing about with a texture asset link onto a texture node when I disconnected I accidentally dragged the linking cord onto the reference window. It stuck there, I could pull the node away and the cord just stretched. Don’t think there was another node under the reference window as not visible on mini map.

  • JohnJohn Admin Mod
    Posts: 790

    @Bri_G the blend mode should be configured by the material automatically. Can you post some screenshots of what you are seeing?

  • Posts: 2,728
    @Simeon - I closed the shader down and when I reloaded it the issue wasn't there. 'll try to duplicate and post what I find.
  • Posts: 2,728

    @John - you’ll probably get a lot of these from me as I tend to connect everything to everything, at the moment, to see what happens. See the attached photo from my latest error - probably down to my lack of understanding.

  • JohnJohn Admin Mod
    Posts: 790

    @Bri_G I think that's caused by adding two texture objects together. It shouldn't really be a allowed by the editor but in general it makes no sense to ever do something like that.

    I think there is probably thousands of ways to build invalid shaders, a lot of those are due to bugs and some are just illogical constructs that cannot compile.

  • Posts: 2,728
    @John - thanks you hit the mark with illogical I've just been playing round to see what connections are possible and the effects of them. Seem to remember some distortion adding texture to texture - is there an unintended merging effect?

    Think I've asked before but what's the best way to read a 2D height map?
  • Posts: 2,728
    @John - another quick question, when alerted to an error, in the output window, it prompts to tap the alert to get details. In doing that you seem to get a listing in the references window. Is this Codea compatible shader code?
  • @John i am bugging you again-sorry! Just wondering if you had time to think any more about the disintegration shader with craft, we discussed earlier on this thread.

  • AnatolyAnatoly Mod
    Posts: 894

    Honestly, this is great. UI - best, speed - best. Two Lives Left, prove me you're earthlings! This is the best software design I have ever seen. All needs fulfilled. Great job, @Simeon @John!! (Why have I missed this topic?)

  • JohnJohn Admin Mod
    Posts: 790

    @piinthesky I'll see if I can dig up the graph and model I originally used.

  • Posts: 130

    The shader interface reminds me of my DAWs plugin and midi routing interface, I feel so at home.

  • edited May 2020 Posts: 661

    @Simeon I am able to crash Shade if i touch the display window while the shader is setting up. The easiest shader example to demonstrate this is 'forest floor' as it takes a while to get going.

  • Posts: 2,728

    @Simeon @John - forest floor still crashed Shade before it displays.

  • dave1707dave1707 Mod
    Posts: 10,055

    @Simeon On my iPad Air 1 with 16GB memory, a lot of the examples crash Shade. One of them even crashed the iPad, but I don’t remember which one it was. I deleted Shade and reloaded it, but a lot of the examples still crash the iPad. All of the examples show a default image and they have a date of Dec 31, 1969 at 7:00 PM. Shade is set for On My Ipad. I even tried to reload the examples but that didn’t help the date/time. I guess 16GB isn’t enough to run Shade. Not having any problems on my iPad Air 3 with 64GB memory.

    @Bri_G I’m not having any problems loading Forest Floor. It takes about 6 seconds to fully load on an iPad Air 3 with 64GB memory.

  • edited May 2020 Posts: 2,728

    @dave1707 - this is weird, Shade seems to run all demos on my iPad but crashed in the last version of Shade and the latest version when loading Forest Floor.

    @John - just repeated and sent you a feedback note from the crash error. Just a thought, @Simeon mentioned that you built Shade within Codea. Is there any chance that it is still dependent upon Codea - including memory allocation - as I have a lot of files and data held within Codea. Just wondered if that could cause an issue as I don’t know how memory for iPad applications is allocated and if the ceiling automatically increases to accommodate requirements.

  • JohnJohn Admin Mod
    Posts: 790

    @Bri_G. While Shade is built on Codea it is still a separate app. It doesn't matter if you have Codea or if you have a lot of projects/data in there.

    The crashes are almost 100% certainly due to Shade requesting too much memory and iOS decides to kill it. Most of the memory usage is tied to textures, which for a shader with hundreds of nodes, can definitely strain older devices to the breaking point.

    Unfortunately we have no way of knowing ahead of time how much memory we are allowed to use due to the way iOS works. There are a few low level optimisations I can work on to cut memory usage in half for textures. Hopefully that will fix these types of crashes for lower memory devices. Just a side note as well, the amount of storage available is not actually how much memory the device has. This is a separate spec (ram) which varies depending on the generation of the device.

  • Posts: 7

    Hi Shade team,

    I would like to say that this app is absolutely the slickest and intuitive stand alone application yet, I come from a background in the gaming industry and have used numerous game engines and their shader systems. Really loving this right now.

    @John I'm in the process of rebuilding my shader library inside Shade as a sort of exercise to see if shade is capable of everything :) , One thing i seem to cant find is a Comparison Node, need some basic Less Than , Equal to etc type nodes, unless im missing something

    Overall amazing application, cant wait for the next update


  • JohnJohn Admin Mod
    Posts: 790


    Thanks for the feedback!

    Is this the sort of thing you are looking for?


    I can add this to Shade in the next update (was planning to add eventually anyway).

  • edited May 2020 Posts: 7

    @John yes exactly! , Amplify has "Compare" Nodes that is essentially the "If" node stripped down to the individual expressions , It really depends on how intuitive and clearly the UI displays to the user what the node is doing , some people prefer the if node layout (with all comparison options) some prefer the individual nodes for each comparison :)

    One other feature that would be awesome is the ability to clamp textures , (wrap , mirror ,clamp etc)

  • JohnJohn Admin Mod
    Posts: 790


    Ok, I’ve created a Compare node that lets you do any logical comparison between two values of the same type. It works with floats and vectors (vectors are compared use component-wise comparison functions.

  • Posts: 7

    @John Hell yes! Thank you! Ill continue to keep an eye out for any missing crucial nodes :)

  • Posts: 7

    @John does shade have a discord that im able to join? Btw this is awesome whens the next milestone date for an update? (no rush just curious :) )

    Thank you!

  • SimeonSimeon Admin Mod
    Posts: 5,782
  • JohnJohn Admin Mod
    Posts: 790

    @Moferad The compare node is now live on the app store version of Shade btw

  • edited May 2020 Posts: 7

    @John Hell yes! thank you John! aww looks like the invite expired

  • JohnJohn Admin Mod
    Posts: 790
  • Posts: 7

    @John that one worked thank you,

    A few other additions of nodes I could recommend, "Sun Direction and Ambient Color" , sometimes its easier to just use the sun direction used in the environment preview settings when testing some custom lighting shaders

  • JohnJohn Admin Mod
    Posts: 790

    @Moferad Yeah that's a good idea. It will be added as a more generic lighting input in the Surface node. Most likely like this:

  • Posts: 7

    @John yes excellent!!

  • Posts: 1

    Hi! I’d like to second what @Moferad has requested with the texture wrapping options. Having issues trying to get my textures to reliably stop repeating in cases where I’m using textures as masks. Is there a way that I can apply some texture wrapping params? Awesome software!!

  • JohnJohn Admin Mod
    Posts: 790

    @sethhall Here’s a workaround for the time being with regards to clamping. It’s a bit messy but gets the job done:

  • edited June 2020 Posts: 4

    Hey everyone!

    I was trying to post some topics I wrote down, but I have to wait 60 seconds to post a new topic and when posting within 60 seconds, waiting 120 seconds is required. It would be great if those values would be lower.

    Here are the topics, which are all about Shade:

    Texture alpha channel
    When using an image (.png file exported from Procreate), I am not getting an alpha channel to use for opacity. The preview of "Texture asset" does seem to show transparency, but when connecting its output to a Texture node, the background is just black and trying to use the alpha output of Texture doesn't result in transparency when linking it to Opacity or Opacity Clip.

    Quad UVs flipped U
    When using a texture on the integrated quad mesh, the image is flipped on the U axis. This can be solved by One Minus the U value and combine UV to new UV coordinates, but it's just a workaround.

    Hide overview
    It would be useful being able to hide the overview UI (bottom left on iPad only) while panning the view.

    Vertex colors don't work
    I'm not sure this is a forger issue or a Shade issue, but when using meshes from forger, I cannot use the vertex colors painted in forger (obj export) by accessing the Vertex colors node in Shade.

    Save preview scale
    When closing and opening a file, the preview scale will be set back. It would be useful if the preview scale was saved.

    Prop update
    When selecting a different mesh for Prop, the Prop mesh only updates once another mesh is selected.

    Move Prop
    Prop meshes cannot be moved by dragging an axis of the gizmo.

    Undo redo gestures
    It would be useful to be able to undo and redo by two finger and three finger tap, just like Procreate uses the gestures. 3 finger iOS gestures (since 13.x) are much slower and more unreliable.

    Scene Color doesn't include Prop
    When using Scene Color as Diffuse input for a mesh, a Prop that's placed behind that mesh will not be part of the GrabPass. Not even the floor will be included, just the grid.

    Shaderlab import?
    I bought the pro version of Shade, which should include Unity shader export. Are there any plans to include Unity shader import?

    Best wishes,

  • JohnJohn Admin Mod
    Posts: 790

    @shushustorm Thanks for the feedback. I think pretty much all of those things should be possible to fix. We also have a public Trello board to keep track of bug reports and feature requests -

  • JohnJohn Admin Mod
    Posts: 790

    @shushustorm I've added those bug reports and feature requests to Trello and will try get address them as soon as possible

  • @John

    Thanks for your reply!
    I registered for Trello, but it doesn't seem like I can post new things there. So I will keep posting new feedback here:

    Previews sometimes not updating
    Sometimes, the previews of some nodes and also the preview window of the rendered mesh don't update when doing changes. They will eventually update when closing and opening the file again.

    Toggle all previews
    It would be great to be able to toggle all previews on and off at once to preserve battery life.

    Setting individual node channels doesn't work
    I might be doing something wrong, but when zooming in on a conversion bubble, I can see which channel gets mapped to which and the manual states I can rewire those. But I cannot do that.

    Undo crashes
    Unfortunately seems sporadic, but sometimes when using Undo, Shade crashes.

    Most of the things I mentioned are smaller issues or things that could slightly improve workflow. Personally, I'd say the most important things are:
    - Texture alpha channel (which I read on Trello works for you, so I will give that another try. I didn't use an "Add" node, though. I just connected Texture out "a" to Opacity.)
    - Vertex colors don't work (may not even be an issue of Shade)
    - Battery charge goes down somewhat rapidly (I didn't mention this explicitly, but some of the things I suggested ("Hide preview", "Toggle all previews") would make it easier to preserve battery life; if you can, however, increase overall code performance, that would be great, too - I'm just not sure if there is any room to improve or if the tasks are simply somewhat heavy).

    Thanks for developing this great software! It's very useful to be able to preview shader ideas on iOS devicers. I am going to have to rewrite optimized versions of those shaders anyway, but being able to do some work on shaders anywhere, using an iPhone, is very useful! And not just from a shader development perspective, but also being able to preview textured meshes using custom shaders on iOS is great!

  • JohnJohn Admin Mod
    Posts: 790

    @shushustorm Thanks for the continued feedback!

    I'll check why you can't edit the Trello board

    The previews not updating is a known issue since we changed it to only update when necessary (some things slipped through the cracks)

    Toggle all previews is a good idea in terms of battery life. Speaking of which the main problem with Shade is that the UI continuously draws at a fixed rate. This is a bit of Codea limitation, which may be fixed in the future though.

    I believe that the .obj format does not support individual vertex colours. If you use something like .stl, .fbx or .blend you should be able to use them.

    I couldn't find an issue with alpha not working. You do not need to use an add node or anything. Can you send me a .shader file showing the issue you describe?

    Undo crash sounds bad, if you manage to reliably reproduce it let me know so I can try to fix that.

    There is UI input issue with swizzle pips where you have to very quickly drag to rearrange them, which I need to fix.

  • JohnJohn Admin Mod
    Posts: 790
  • edited June 2020 Posts: 4

    Alright, thanks for the reply!

    Vertex Colors do work and you're right, .obj doesn't seem to include that data. I used a .blend from desktop, which I usually do when working with vertex colors, and the Vertex Colors node does indeed output vertex colors. .stl doesn't seem to work, though and .fbx seems to have a scaling issue (.stl exported from forger and Blender, .fbx exported from Blender).

    I do think the undo crashes were caused when undoing some wiring, but I'm not sure. I can send more information if I'm able to reproduce it reliably.

    Concerning the swizzling, I tried rewiring fast once the zoom in completed and sometimes it does indeed work, but that's somewhat fast interaction required for consistent usage. Would be great if this was fixed at some point.

    Also, posting to Trello works now, thanks! I already added some more suggestions.
  • edited December 2021 Posts: 2,728

    @John - probably seen this loadsa times but - I tried to load a shader from my Codea root folder, it displays the shader icon fine with other icons greyed out. On selecting one to load you get an error ‘something went wrong with baking your shader’, with a full listing of code in blue text over the left hand window. But, if you drag back that window you see the Codea warning that the old asset addressing is no longer in use and has been replaced by the new one. This is probably because Shade is built on top of Codea and the old Codea shader formats are incompatible but I was a little surprised to see the addressing warning. Doesn’t Shade adhere to the new asset addressing system?

    Just a quick thanks. The last couple of updates on Shade have made massive steps. Love the integration with the filing but most of all the information support on the Shade features, really helpful, well thought out - good support. Great examples too. Thanks.

  • Posts: 2,728
    @John - I think I figured this out. The alert is posted because the files in the Codea root don't comply to standard directory structure.
  • JohnJohn Admin Mod
    Posts: 790

    @Bri_G I see what you mean, we should probably detect the old bundle format and handle it properly. Some of the assets are still using the old system, which I keep forgetting to get around to :blush:

Sign In or Register to comment.