Take the 2-minute tour ×
Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. It's 100% free, no registration required.

I have created a text layer, converted it to a Smart Object, and duplicated the Smart Object twice. I then applied Stroke blending option to both copies and set their Fill to zero:

image1

At this point, if I edit the text in one Smart Object, the change also applies to the other two - which is fantastic:

image2

Now I want to apply Emboss and Drop Shadow to the stroke, so I convert the layer on the right to Smart Object and apply the effects. Note that it's now a Smart Object inside a Smart Object.

But, if I now edit the text layer, the change doesn't propagate to the nested Smart Object anymore. There are now two text layers which can be edited independently:

image3

Can I somehow create nested Smart Objects while sharing the content inside the deepest object with other objects, so that my text editing propagates to all objects regardless of how deeply I wrapped them into other Smart Objects?

share|improve this question
    
Someone had the same problem on Adobe Forums. It seems that Photoshop doesn't really support reusing the same "instance" of an object arbitrarily. What a damn shame. –  romkyns Dec 24 '11 at 14:54
add comment

1 Answer 1

up vote 3 down vote accepted

Ah, that hole in your foot appears to be from a .44 Magnum... :-)

Smart Objects are plenty smart, but when you create a new SO, it isn't linked to anything else because it's, well, new. There are good engineering reasons for this, a not-always-visible set of considerations subsumed under "Managing User Expectations." The complexity of processing filters within filters within Smart Objects within Smart Objects would slow otherwise high-performing systems to a crawl, so the engineering teams don't go there. They know it's a trade-off, but there are many compromises between what they'd like to build, the resources available, and the hardware that marketing tells them it will have to run on. This is true of every release.

In this case, however, you can get there by using an Outer Bevel (which effectively applies a bevel to the stroke, rather than the zero-opacity text), setting it to "Down" instead of "Up", adjusting the size, picking a gloss contour that gets you in the ballpark and editing it to exactly what you need. If you've never edited a gloss contour before, you're in for some fun. Just click on the ramp, same as you would for a gradient, and a curves-like edit window opens up.

share|improve this answer
2  
Thanks :) Frankly, I don't know why you think what I want would be slower: at worst, it has the exact same amount of rendering to do. But if they were extra smart, they could even cache and reuse what they already rendered for another reference to the same smart object, thus ending up rendering less. It's probably harder to code, but it's certainly not slower. –  romkyns Dec 25 '11 at 11:03
    
Romkyns is absolutely right, but I don’t expect graphics designers to appreciate these technical programming issues :) –  Timwi Dec 25 '11 at 11:28
    
I wanted to explain why I have this expectation, by the way. You see, when I duplicate an SO object, the duplicates clearly contain the exact same content. There is just one text layer, contained in two smart objects. I bet that I can also duplicate the parent smart object and there will still be exactly one nested smart object, contained in two outer objects. The only thing left is to allow the same smart object to be both inside another smart object and outside any. I don't see how this would have any performance implications. –  romkyns Dec 25 '11 at 13:40
    
@romkyns: This kind of thing comes up quite often in the beta forums and (so I'm told) in the internal meetings among the engineering team. One person's special case (yours, for example) must be extrapolated to take into account all the other things that users might want to do with that capability. –  Alan Gilbertson Dec 26 '11 at 19:05
    
@timwi: I can't tell if you're being deliberately insulting or you're just naive and tactless. Implementing a "feature" that works only for an edge case or two is a deadly and expensive error. I spent years as an application programmer, so I understand the consideration set from both the management and engineering viewpoints. –  Alan Gilbertson Dec 26 '11 at 19:36
show 5 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.