Photoshop: Taper function broken in 3D Extrusion for text objects only, PS6 Extended

  • Problem
  • Updated 4 years ago
  • (Edited)
A text object (word or multiple words) can be "tapered" with an extrusion of 0, resulting in what appears to be extrusion. With a taper value of less than 100%, the faux extrusion appears with no taper. Here's an example.

Taper values greater than 100% produce an apparent expanding taper.

Note that the faux extrusion does assume the material assigned to the extrusion.

In a direct overhead view, the text has no extrusion. It is only when viewed from the default camera or any angle other than directly above or below that the real situation is visible.

The resulting 0 Extrusion, >100% Taper object can be ray-traced, with predictably strange-looking results, and subsequent (after the render is complete or has been interrupted) adjustments to the Taper parameter can result in a crash of Photoshop. (I have dumps if anyone wants to look at them).

With vector objects, there is no issue. This is peculiar to text.
Photo of Alan Gilbertson

Alan Gilbertson

  • 18 Posts
  • 1 Reply Like
  • hoping for a fix

Posted 4 years ago

  • 1
Photo of SG...

SG..., Employee

  • 119 Posts
  • 20 Reply Likes

What OS version are you using? What video card do you have, and which driver version?

Does it happen with any typeface?

Photo of Alan Gilbertson

Alan Gilbertson

  • 18 Posts
  • 1 Reply Like
Any typeface. Only text. With or without extensions loaded.

Adobe Photoshop Version: 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00) x64
Operating System: Windows 7 64-bit
Version: 6.1 Service Pack 1
System architecture: Intel CPU Family:6, Model:14, Stepping:5 with MMX, SSE Integer, SSE FP, SSE2, SSE3, SSE4.1, SSE4.2, HyperThreading
Physical processor count: 4
Logical processor count: 8
Processor speed: 2925 MHz
Built-in memory: 8183 MB
Free memory: 2777 MB
Memory available to Photoshop: 7220 MB
Memory used by Photoshop: 70 %
Image tile size: 128K
Image cache levels: 4
OpenGL Drawing: Enabled.
OpenGL Drawing Mode: Advanced
OpenGL Allow Normal Mode: True.
OpenGL Allow Advanced Mode: True.
OpenGL Allow Old GPUs: Not Detected.
Video Card Vendor: NVIDIA Corporation
Video Card Renderer: GeForce GTX 550 Ti/PCIe/SSE2
Display: 2
Display Bounds:= top: -320, left: 2560, bottom: 1600, right: 3760
Display: 1
Display Bounds:= top: 0, left: 0, bottom: 1600, right: 2560
Video Card Number: 2
Video Card: NVIDIA GeForce GTX 550 Ti
OpenCL Unavailable
Driver Version:
Driver Date: 20120229000000.000000-000
Video Card Driver: nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um
Video Mode: 1920 x 1200 x 4294967296 colors
Video Card Caption: NVIDIA GeForce GTX 550 Ti
Video Card Memory: 2048 MB
Video Rect Texture Size: 16384
Video Card Number: 1
Video Card: LogMeIn Mirror Driver
OpenCL Unavailable
Driver Version: 7.1.542.0
Driver Date: 20060522000000.000000-000
Video Card Driver:
Video Mode: 2560 x 1600 x 4294967296 colors
Video Card Caption: LogMeIn Mirror Driver
Video Card Memory: 2048 MB
Video Rect Texture Size: 16384
Serial number: 90970244242887868169
Application folder: C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\
Temporary file path: C:\Users\Alan\AppData\Local\Temp\
Photoshop scratch has async I/O enabled
Scratch volume(s):
C:\, 931.5G, 542.5G free
Required Plug-ins folder: C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Required\
Primary Plug-ins folder: C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Plug-ins\
Additional Plug-ins folder: not set

Installed components:
A3DLIBS.dll A3DLIB Dynamic Link Library
ACE.dll ACE 2012/01/18-15:07:40 66.492997 66.492997
adbeape.dll Adobe APE 2012/01/25-10:04:55 66.1025012 66.1025012
AdobeLinguistic.dll Adobe Linguisitc Library 6.0.0
AdobeOwl.dll Adobe Owl 2012/02/09-16:00:02 4.0.93 66.496052
AdobePDFL.dll PDFL 2011/12/12-16:12:37 66.419471 66.419471
AdobePIP.dll Adobe Product Improvement Program
AdobeXMP.dll Adobe XMP Core 2012/02/06-14:56:27 66.145661 66.145661
AdobeXMPFiles.dll Adobe XMP Files 2012/02/06-14:56:27 66.145661 66.145661
AdobeXMPScript.dll Adobe XMP Script 2012/02/06-14:56:27 66.145661 66.145661
adobe_caps.dll Adobe CAPS 6,0,29,0
AGM.dll AGM 2012/01/18-15:07:40 66.492997 66.492997
ahclient.dll AdobeHelp Dynamic Link Library 1,7,0,56
aif_core.dll AIF 3.0 62.490293
aif_ocl.dll AIF 3.0 62.490293
aif_ogl.dll AIF 3.0 62.490293
amtlib.dll AMTLib (64 Bit) (BuildVersion: 6.0; BuildDate: Mon Jan 16 2012 18:00:00) 1.000000
ARE.dll ARE 2012/01/18-15:07:40 66.492997 66.492997
AXE8SharedExpat.dll AXE8SharedExpat 2011/12/16-15:10:49 66.26830 66.26830
AXEDOMCore.dll AXEDOMCore 2011/12/16-15:10:49 66.26830 66.26830
Bib.dll BIB 2012/01/18-15:07:40 66.492997 66.492997
BIBUtils.dll BIBUtils 2012/01/18-15:07:40 66.492997 66.492997
boost_date_time.dll DVA Product 6.0.0
boost_signals.dll DVA Product 6.0.0
boost_system.dll DVA Product 6.0.0
boost_threads.dll DVA Product 6.0.0
cg.dll NVIDIA Cg Runtime 3.0.00007
cgGL.dll NVIDIA Cg Runtime 3.0.00007
CIT.dll Adobe CIT
CoolType.dll CoolType 2012/01/18-15:07:40 66.492997 66.492997
data_flow.dll AIF 3.0 62.490293
dvaaudiodevice.dll DVA Product 6.0.0
dvacore.dll DVA Product 6.0.0
dvamarshal.dll DVA Product 6.0.0
dvamediatypes.dll DVA Product 6.0.0
dvaplayer.dll DVA Product 6.0.0
dvatransport.dll DVA Product 6.0.0
dvaunittesting.dll DVA Product 6.0.0
dynamiclink.dll DVA Product 6.0.0
ExtendScript.dll ExtendScript 2011/12/14-15:08:46 66.490082 66.490082
FileInfo.dll Adobe XMP FileInfo 2012/01/17-15:11:19 66.145433 66.145433
filter_graph.dll AIF 3.0 62.490293
hydra_filters.dll AIF 3.0 62.490293
icucnv40.dll International Components for Unicode 2011/11/15-16:30:22 Build gtlib_3.0.16615
icudt40.dll International Components for Unicode 2011/11/15-16:30:22 Build gtlib_3.0.16615
image_compiler.dll AIF 3.0 62.490293
image_flow.dll AIF 3.0 62.490293
image_runtime.dll AIF 3.0 62.490293
JP2KLib.dll JP2KLib 2011/12/12-16:12:37 66.236923 66.236923
libifcoremd.dll Intel(r) Visual Fortran Compiler 10.0 (Update A)
libmmd.dll Intel(r) C Compiler, Intel(r) C++ Compiler, Intel(r) Fortran Compiler 10.0
LogSession.dll LogSession
mediacoreif.dll DVA Product 6.0.0
MPS.dll MPS 2012/02/03-10:33:13 66.495174 66.495174
msvcm80.dll Microsoft® Visual Studio® 2005 8.00.50727.6195
msvcm90.dll Microsoft® Visual Studio® 2008 9.00.30729.1
msvcp100.dll Microsoft® Visual Studio® 2010 10.00.40219.1
msvcp80.dll Microsoft® Visual Studio® 2005 8.00.50727.6195
msvcp90.dll Microsoft® Visual Studio® 2008 9.00.30729.1
msvcr100.dll Microsoft® Visual Studio® 2010 10.00.40219.1
msvcr80.dll Microsoft® Visual Studio® 2005 8.00.50727.6195
msvcr90.dll Microsoft® Visual Studio® 2008 9.00.30729.1
pdfsettings.dll Adobe PDFSettings 1.04
Photoshop.dll Adobe Photoshop CS6 CS6
Plugin.dll Adobe Photoshop CS6 CS6
PlugPlug.dll Adobe(R) CSXS PlugPlug Standard Dll (64 bit)
PSArt.dll Adobe Photoshop CS6 CS6
PSViews.dll Adobe Photoshop CS6 CS6
SCCore.dll ScCore 2011/12/14-15:08:46 66.490082 66.490082
ScriptUIFlex.dll ScriptUIFlex 2011/12/14-15:08:46 66.490082 66.490082
tbb.dll Intel(R) Threading Building Blocks for Windows 3, 0, 2010, 0406
tbbmalloc.dll Intel(R) Threading Building Blocks for Windows 3, 0, 2010, 0406
TfFontMgr.dll FontMgr
TfKernel.dll Kernel
TFKGEOM.dll Kernel Geom
TFUGEOM.dll Adobe, UGeom©
updaternotifications.dll Adobe Updater Notifications Library (BuildVersion: 1.0; BuildDate: BUILDDATETIME)
WRServices.dll WRServices Friday January 27 2012 13:22:12 Build 0.17112 0.17112
wu3d.dll U3D Writer

Required plug-ins:

3D Studio 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Accented Edges 13.0
Adaptive Wide Angle 13.0
ADM 3.11x01
Angled Strokes 13.0
Average 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Bas Relief 13.0
BMP 13.0
Camera Raw 7.0
Chalk & Charcoal 13.0
Charcoal 13.0
Chrome 13.0
Cineon 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Clouds 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Collada 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Color Halftone 13.0
Colored Pencil 13.0
CompuServe GIF 13.0
Conté Crayon 13.0
Craquelure 13.0
Crop and Straighten Photos 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Crop and Straighten Photos Filter 13.0
Crosshatch 13.0
Crystallize 13.0
Cutout 13.0
Dark Strokes 13.0
De-Interlace 13.0
Dicom 13.0
Difference Clouds 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Diffuse Glow 13.0
Displace 13.0
Dry Brush 13.0
Eazel Acquire 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Embed Watermark 4.0
Entropy 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Extrude 13.0
FastCore Routines 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Fibers 13.0
Film Grain 13.0
Filter Gallery 13.0
Flash 3D 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Fresco 13.0
Glass 13.0
Glowing Edges 13.0
Google Earth 4 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Grain 13.0
Graphic Pen 13.0
Halftone Pattern 13.0
HDRMergeUI 13.0
IFF Format 13.0
Ink Outlines 13.0
JPEG 2000 13.0
Kurtosis 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Lens Blur 13.0
Lens Correction 13.0
Lens Flare 13.0
Liquify 13.0
Matlab Operation 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Maximum 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Mean 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Measurement Core 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Median 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Mezzotint 13.0
Minimum 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
MMXCore Routines 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Mosaic Tiles 13.0
Multiprocessor Support 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Neon Glow 13.0
Note Paper 13.0
NTSC Colors 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Ocean Ripple 13.0
Oil Paint 13.0
OpenEXR 13.0
Paint Daubs 13.0
Palette Knife 13.0
Patchwork 13.0
Paths to Illustrator 13.0
PCX 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Photocopy 13.0
Photoshop 3D Engine 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Picture Package Filter 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Pinch 13.0
Pixar 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Plaster 13.0
Plastic Wrap 13.0
PNG 13.0
Pointillize 13.0
Polar Coordinates 13.0
Portable Bit Map 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Poster Edges 13.0
Radial Blur 13.0
Radiance 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Range 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Read Watermark 4.0
Reticulation 13.0
Ripple 13.0
Rough Pastels 13.0
Save for Web 13.0
ScriptingSupport 13.0
Shear 13.0
Skewness 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Smart Blur 13.0
Smudge Stick 13.0
Solarize 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Spatter 13.0
Spherize 13.0
Sponge 13.0
Sprayed Strokes 13.0
Stained Glass 13.0
Stamp 13.0
Standard Deviation 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Sumi-e 13.0
Summation 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Targa 13.0
Texturizer 13.0
Tiles 13.0
Torn Edges 13.0
Twirl 13.0
U3D 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Underpainting 13.0
Vanishing Point 13.0
Variance 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Variations 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Water Paper 13.0
Watercolor 13.0
Wave 13.0
Wavefront|OBJ 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
WIA Support 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
Wind 13.0
Wireless Bitmap 13.0 (13.0 20120315.r.428 2012/03/15:21:00:00)
ZigZag 13.0

Optional and third party plug-ins:

Photoshop Touch 10.0
Plug-ins that failed to load: NONE
Painting Assistant
Adobe EMailer
Mini Bridge
Installed TWAIN devices: NONE
Photo of SG...

SG..., Employee

  • 119 Posts
  • 20 Reply Likes
Thanks for the system info. We'll look further into this.

I see the bad face rendering, which is the collision of the two faces (front and back) occupying the same planar space. I haven't been able to crash or see an active core that doesn't spin down after Ray Trace rendering. I tried this on Win7 64 machine but it is an AMD chipset and an ATI video card.

One thing I do notice in your setup is the video driver for the second display reports as very old:
Driver Version: 7.1.542.0
Driver Date: 20060522000000.000000-000

Do you have your cards configured to use SLI? Photoshop can't take avantage and we might be getting tripped up by it.

Photo of Alan Gilbertson

Alan Gilbertson

  • 18 Posts
  • 1 Reply Like
That "Video Card 1" is the LogMeIn mirror driver. It's up to date. It's a virtual display for remote access only, and really only kicks in during remote access sessions (and makes no use of the GPU, as far as I can tell -- it certainly disables all the OS GPU-related features such as Aero). I do recall that Apple's Bootcamp update wouldn't install on a Macbook Pro until the virtual display driver had been uninstalled, but I don't think this is a similar or related issue.

I don't use SLI as I don't do gaming, and, as you say, neither Mercury nor any of the other Adobe video functions use it.

The odd rendering isn't unexpected. The ray tracer is trying to render a non-existent extrusion, so you'd have to expect something bizarre. RT works just fine with a normal extrusion, bevels, inflation, etc. It's only taper that's broken, and only for text. Nothing happens on screen when you adjust the taper of a normal vector object with 0 extrusion. With text, it goes wild.

Note, though, that with text ANY taper other than 100%, even with a non-zero extrusion setting, still triggers wacko rendering, so I don't think it's just a matter of front and rear materials being rendered in the same plane. (It should be able to compensate for a 0 extrusion, all things being equal, or it should be trapped and trigger a warning message. Either way, it's non-optimum.)
Photo of SG...

SG..., Employee

  • 119 Posts
  • 20 Reply Likes
Hi Alan,

I don't get what your seeing with a severely less powered Win7 system (Intel Centrino, Nvidia Quadro FX 570M).

To be clear, do you see this just when making an edit to the mesh (interactive mode), just when rendered (RT) or both?

I'm also trying to understand your last paragraph: "...text ANY taper other than 100%, even with a non-zero extrusion setting, still triggers...". So a text extrusion of 100px with a taper of 110% is showing like above? If that's the case, then there's no face collision, and I'd hazard you have GPU problem. What happens if you change the Extrusion material to 0% opacity?

Photo of Alan Gilbertson

Alan Gilbertson

  • 18 Posts
  • 1 Reply Like
Hi Steve,

I can't answer for your system, but I see the same behavior on my workstation and my Macbook Pro (also Win7/x64), with different NVidia GPUs. Create a 3D extrusion from some text. Set the extrusion depth to 0. Tab into the taper field and click the down arrow a few times. What appears to be an extrusion appears behind the text. If I change the extrusion material in the mesh, it shows up on this faux extrusion, just like it would on a real one, but of course it can't possibly render with the ray tracer. This is definitely a reproducible bug.

What's in my screen shot is text with an extrusion of 0 and a taper of 85%.

I'm thinking that if it were a GPU issue, it would affect all renders, but it doesn't. Only text, and only when a taper has been applied. Add to that the fact that the taper SHOULD NOT APPEAR when the extrusion is 0 (independent of any rendering) and that all points to a coding error somewhere.
Photo of SG...

SG..., Employee

  • 119 Posts
  • 20 Reply Likes
Hi Alan,

With those settings what you're seeing are multiple polygons that are drawing on the same plane. I see it a some conditions with GPU and CPU rendering (not limited to just text extrusions). You can reduce many of the poor looking results by targeting the Scene node in the 3D panel and then going to the Properties panel and checking on, 'Remove Hidden: Backfaces'.

Are you running into problems besides the display issues? I haven't been able to see any indication of a core getting stuck after running a 'Render' command.

Photo of Alan Gilbertson

Alan Gilbertson

  • 18 Posts
  • 1 Reply Like
Steve, please. I know how to avoid the display and rendering problem and I'm not trying to solve it. The issue is a UI behavior that should not exist.

This is not a problem I'm trying to solve, it's a bug I'm trying to report. Taper does not behave the way it should on a 3D Extrusion from text. Symptoms abound of an underlying issue in the code. Unfortunately, we no longer have access to the standard bug reporting forms, so I have to post here.

Here's the deal. From long years of experience I know that lots of weird, hard-to-reproduce symptoms can arise from an undefined behavior that is allowed in the UI even though the underlying code has no way to handle it (a non-zero Taper on an Extrusion of 0 depth is meaningless, so unless that condition is trapped in the underlying code it is "undefined") . Worse, that particular kind of error can "lurk" once triggered, and not show up as a problem until minutes or hours later.

What does show up can appear random, and the time displacement may make it hard to connect to anything. I've seen this happen in exactly this kind of circumstance more than once over the years. It's a beta tester's nightmare, because a tester's job is to give the team ways they can reproduce the bug. I've worked on too many beta cycles (not just with Adobe) not to know that.

So when I see obviously bogus behavior (an "extrusion" appears when I change the taper parameter), I report it. If it seems to have more serious implications, I report it with exclamation points.

The Taper function and the text 3D extrusion module are suspect. I've seen Taper crash Photoshop (PS crashed the instant I adjusted the taper parameter during one of my tests); the stuck thread showed up during a session when I was working with complex text extrusions and had thoroughly maxed out RAM on both GPU and main memory; and today, after a short test render of a 3D text object with 0 extrusion but plenty of taper, selecting Front Inflation and changing its material resulted instead in a change in the Extrusion material, and vice versa. That's impossible, but there it is. At this point I can reproduce Taper errors reliably on two very different systems. It's a bug.
Photo of SG...

SG..., Employee

  • 119 Posts
  • 20 Reply Likes
Hi Alan,

Okay, I got it. You want to report that the UI shouldn't allow for z-fighting to be created so easily.

To be clear, there's no "undefined" condition setup. The multiple co-planar meshes are defined, and it's just the display of this condition that results in the 'artifacts'. IOW, the extrusion of 0 with a non-100% taper is expected to create a co-planar mesh condition, resulting in potential z-fighting display artifacts.

I was mainly trying to ascertain from you if you had repeatable steps that exhibited crashing/hanging problems with video card drivers, and so far it doesn't sound like you do.

Photo of Alan Gilbertson

Alan Gilbertson

  • 18 Posts
  • 1 Reply Like
Not specific to crashes. The visible artifacts and internal confusions (like materials being assign to the wrong mesh) are repeatable.