Ideas for applications like Photoshop

This article was initially posted on the CGTalk forums.

Hello!

I don't know if these things have ever been discussed here, but here I go.

I got some ideas for Photoshop and even 2D applications, in general. These ideas are coming mostly from how I work in 3D graphics.

Instancing:

It would be nice to be able to have a given layer and to be able to create instances of it by even being able to define the pivot / center.

Example: you draw a star .. and you want to make four identical stars, but one with a given layer set of effects [like a yellow glow and hard bevel], the second star you want it just with a different glow colour and a different bevel. Now you have to duplicate the layer four times and modify the Layer Effects. That's bad, because.. you suddenly want a corner to be swirled, to all four! So, what do you do? If you would have instancing.. .you would modify just the initial layer and all the rest would be updated in real-time. I know you would bring-up the Smart object issue here, but that's plain silly to use it for a simple star or other elements of an image.

To further elaborate on the instancing feature, I have these ideas:

You have the same star.... You want to make a heart contour constructed of stars . What do you do? In today's habits... you would duplicate it for countless times, that's bad. Instance along a given spline/path. You draw a vector path... and PS would instance your little star along that vector path. Options for this: number of instances, scale, rotation. Further more... It should allow you to dynamically alter your vector path along which the stars are being instanced. This implies that the effect is a real-time one, thus not an effect applied once, rasterized and booya. Oh, and on these instances you should be able to use the Layer Effects [glow, bevel, shadow, etc].

More elaboration of instancing along a path:

First, you draw the already mentioned vector path on which PS would instance your given layer. Secondly, you should be able to define a second vector path, which defines the scale of your objects. Those who know 3D, would think of.... Sweep nurbs, yeah that's it.

Mirroring / Symmetry:

You got your vector path or your image. While editing any of these two different types of objects, it would be nice if PS would have an option for symmetry which is constantly mirroring your work.  When you apply any layer effects (drop shadows, bevel or something else) the original and the mirror object should be treated as one, of course, an option to detach the mirror wouldn't be bad. 

Example: you are drawing half of a huge pink heart :). While drawing the vector path, to ease the process, the mirroring object would help you, because you wouldn't have to duplicate the layer, flip it horizontally and then see... it's not quite good yet.

Layer Effects:

Transparency. It would be nice, where you now define those dynamic layer effects... like glow, shadow, gradient, satin, etc.. to have a new channel, transparency. Wouldn't it be cool, to make your object... look like glass without hassle? You could define the index of refraction [which practically zooms what's underneath the layer - it's just 2D, nothing too fancy]. It would be more smart if they would calculate that transparency, by applying distortion accordingly to the Bevel and Emboss you define. Other options needed: diffuse [define the blurriness of what's underneath] and tint.

Reflection. This channel would be a bit more special... because, it would just reflect what's around the layer.

Example: You rendered a checker-board from a perspective [not frontal]. You draw a square in photoshop.. and when you enable the reflection thingy, it reflects your checkers in your square, applying a perspective transformation of what's being reflected. You define the perspective angle, you define the reflection colour [tint] and... the blurriness... and, again, it should be able to distort the reflection accordingly to the bevel 'n emboss .

More ideas...

Like in Microsoft Expression Graphic Designer... PS should allow the user to define the stroke of the text. For example, you want a dotted edge to your text, or your circle, whatever. With the stroke, you define it and you can obtain in real-time more coolness .

Editing of strokes... should be similar to the one of 'Graphic Designer', in which, you simply double-click that stroke.. you edit it like it's a new document, you can draw anything, you close the stroke editor and then it updates your layer with that given stroke.

Also, I have yet to see an option in PS to allow me to test the tiling of my textures.

More advanced plug-in system:

The current plug-in system in PS purely sucks, in my humble opinion. Why is that? If i'm not wrong, when you click on a certain plug-in, Photoshop just sends your currently selected layer to the given P.S. plugin. When you click OK, it returns in PS with the effect applied. How simple is that? Have you guys seen any 3D application? I'm aware of Cinema 4D. In it, you got plugins that add new tools, new options, new rendering possibilities, enhance the G.U.I. and everything. How would a PS user benefit from such a plugin system? Well, many users, or companies, can create new palettes, with special functions, new layer effects, new tools, enhance the G.U.I. with special 'gadgets' or even... really smart-guides, improve the layer system, whatever.

And if they could only add true HDRI mode, you guys should check-out Photogenics HDR.

Thanks for reading.