Cycles box mapping not working with rotated texture coordinates #44014

Open
opened 2015-03-16 13:58:56 +01:00 by Ronny G · 34 comments

System Information
ubuntu 14.04, 630GT, 4930k

Blender Version
Broken: 2.74

Short description of error

box mapping doesn't work with object mapping (object) if the object is rotated (only 1 side is properly projected)

Exact steps for others to reproduce the error

  1. open the blend file
  2. copy "Cube" and rotate it (90 degress)
  3. render
**System Information** ubuntu 14.04, 630GT, 4930k **Blender Version** Broken: 2.74 **Short description of error** box mapping doesn't work with object mapping (object) if the object is rotated (only 1 side is properly projected) **Exact steps for others to reproduce the error** 1. open the blend file 2. copy "Cube" and rotate it (90 degress) 3. render
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @nudelZ

Added subscriber: @nudelZ

#73574 was marked as duplicate of this issue

#73574 was marked as duplicate of this issue

#61510 was marked as duplicate of this issue

#61510 was marked as duplicate of this issue

#53883 was marked as duplicate of this issue

#53883 was marked as duplicate of this issue

#46829 was marked as duplicate of this issue

#46829 was marked as duplicate of this issue
Author
hm :) [objectmappingbug.blend](https://archive.blender.org/developer/F152096/objectmappingbug.blend)
Sergey Sharybin self-assigned this 2015-03-16 18:51:37 +01:00

Will investigate.

Will investigate.

Added subscriber: @efimpetelin

Added subscriber: @efimpetelin

Blender 2.74: the error is still here Oo

Blender 2.74: the error is still here Oo

Added subscriber: @gandalf3

Added subscriber: @gandalf3
Brecht Van Lommel changed title from cycles object mapping (with object) + box mapping + rotation doesn't work to Cycles box mapping not working with rotated texture coordinates 2016-02-21 15:03:39 +01:00
Sergey Sharybin was unassigned by Brecht Van Lommel 2016-02-21 15:03:39 +01:00

Added subscribers: @VilemDuha, @brecht

Added subscribers: @VilemDuha, @brecht

Added subscriber: @Rawalanche

Added subscriber: @Rawalanche

Added subscriber: @Kirill-Volynkin

Added subscriber: @Kirill-Volynkin
Contributor

Any news on this? It makes procedural texturing very difficult.

Any news on this? It makes procedural texturing very difficult.

Added subscriber: @MarcelLegindi

Added subscriber: @MarcelLegindi

Added subscriber: @Fallirini

Added subscriber: @Fallirini

Hello,
are there any news considering this problem?

Hello, are there any news considering this problem?

Added subscriber: @Tilation

Added subscriber: @Tilation

I hope we can get an update soon.

I hope we can get an update soon.

Added subscribers: @NahuelBelich, @mano-wii

Added subscribers: @NahuelBelich, @mano-wii

Added subscriber: @CarlG

Added subscriber: @CarlG

A temporary solution that I have used in the past that may apply in some cases is to rotate the object coordinate itself. Not using the nodes, but rotating with the origins option enabled in the viewport top right dropdown. This works fine unless you need to have some coordinate orientation set - either for local adjustments or for modifiers that act on an axis.

A temporary solution that I have used in the past that may apply in some cases is to rotate the object coordinate itself. Not using the nodes, but rotating with the origins option enabled in the viewport top right dropdown. This works fine unless you need to have some coordinate orientation set - either for local adjustments or for modifiers that act on an axis.

Added subscriber: @xdanic

Added subscriber: @xdanic

Added subscriber: @Loxioss

Added subscriber: @Loxioss

Added subscriber: @ChristophWerner

Added subscriber: @ChristophWerner

The problem is still exisiting in Blender 2.92.

I needed this function already several times.
An example for a use case is to set equal texture coordinates for dozens of different sized objects by using an empty object for example.

Is this problem really that hard to fix?

Here's an example file. Click on play to see the effect. What I expect is no stretching in the texture. Or is this a different bug I'm pointing to?
texturecoordinates_bug01.blend

The problem is still exisiting in **Blender 2.92**. I needed this function already several times. An example for a use case is to set equal texture coordinates for dozens of different sized objects by using an empty object for example. Is this problem really that hard to fix? Here's an example file. Click on play to see the effect. What I expect is no stretching in the texture. Or is this a different bug I'm pointing to? [texturecoordinates_bug01.blend](https://archive.blender.org/developer/F9908093/texturecoordinates_bug01.blend)
Brecht Van Lommel added this to the Render & Cycles project 2023-02-07 19:07:34 +01:00
Philipp Oeser removed the
Interest
Render & Cycles
label 2023-02-09 13:56:49 +01:00

8 years... broken from blender 2.74..blender 3.5 is on the way out.. 💔

8 years... broken from blender 2.74..blender 3.5 is ~~on the way~~ out.. 💔

Ey another bump, I was just about do a bug report about this but finding an EIGHT year old unresolved bug about this was quite strange. Not being able to rotate textures the way you'd expect when using box mapping is a quite annoying and makes the feature almost useless since you don't really have any control over it, so please have a look at it :)
Attached a couple of screenshots showing how it looks when you rotate the texture 90 degrees in two axis, sort of looks like the inside of the black hole in Interstellar.

Ey another bump, I was just about do a bug report about this but finding an EIGHT year old unresolved bug about this was quite strange. Not being able to rotate textures the way you'd expect when using box mapping is a quite annoying and makes the feature almost useless since you don't really have any control over it, so please have a look at it :) Attached a couple of screenshots showing how it looks when you rotate the texture 90 degrees in two axis, sort of looks like the inside of the black hole in Interstellar.

@brecht Unfortunately confirmed in Blender 3.6 Beta and in 4.0 Alpha.

image

@brecht Unfortunately confirmed in Blender 3.6 Beta and in 4.0 Alpha. ![image](/attachments/48b181e1-0933-442e-9c24-c4dde41f091d)
Contributor

It's been a problem ever since the Box mapping has been introduced. It never worked. :(

It's been a problem ever since the Box mapping has been introduced. It never worked. :(
Member

Atm., it uses the object space normals internally, when the input vector is rotated, the normals would need to be adjusted accordingly (but without knowing what we actually used as input vector, tihs is hairy if not impossible).

What I think might work is adding a Normal input for the Image Texture node (in case Box mapping is used) that would let you modify the used normal in a way that corresponds to the used vector. If nothing is connected here, it could still use the object space normal as it did before.

@brecht : does that sound like a plan?

Atm., it uses the object space normals internally, when the input vector is rotated, the normals would need to be adjusted accordingly (but without knowing what we actually used as input vector, tihs is hairy if not impossible). What I think might work is adding a `Normal` input for the `Image Texture` node (in case Box mapping is used) that would let you modify the used normal in a way that corresponds to the used vector. If nothing is connected here, it could still use the object space normal as it did before. @brecht : does that sound like a plan?
Contributor

Atm., it uses the object space normals internally, when the input vector is rotated, the normals would need to be adjusted accordingly (but without knowing what we actually used as input vector, tihs is hairy if not impossible).

What I think might work is adding a Normal input for the Image Texture node (in case Box mapping is used) that would let you modify the used normal in a way that corresponds to the used vector. If nothing is connected here, it could still use the object space normal as it did before.

@brecht : does that sound like a plan?

This sounds like bad solution since it:
A: Offloads the work the program should do internally to the user.
B: Assumes user has knowledge of vector transformation math.

The box mapping can already be built as a custom UV mapping node group, it just requires a lot of knowledge and effort. The Box mapping being part of the texture sampling node is a convenience feature. Offloading this duty onto the user will lead to workflow slow downs, messier, overcomplicated node networks and higher skill ceiling.

It also will not stop bug reports. Most users will not know that the normal input in the texture samplers is mandatory to be used when using the box mapping, so they will still keep reporting broken box mapping.

Normal input has also no place existing in the texture sampler node.

This whole solution significantly increases complexity of texture sampler, will increase skill ceiling of using texture sampler, and will do nearly 0 work in the way of stopping these bug reports.

Let's just do this right, instead of throwing another node input at the user and telling them to do the math themselves. If most other offline renderers offering built in triplanar mapping can do it, there's no reason Cycles shouldn't.

Blender's main issue now in 2023 is worsening UX and no dedicated UX team. Let's not aggravate this problem by introducing brand new features with bad UX.

> Atm., it uses the object space normals internally, when the input vector is rotated, the normals would need to be adjusted accordingly (but without knowing what we actually used as input vector, tihs is hairy if not impossible). > > What I think might work is adding a `Normal` input for the `Image Texture` node (in case Box mapping is used) that would let you modify the used normal in a way that corresponds to the used vector. If nothing is connected here, it could still use the object space normal as it did before. > > @brecht : does that sound like a plan? This sounds like bad solution since it: A: Offloads the work the program should do internally to the user. B: Assumes user has knowledge of vector transformation math. The box mapping can already be built as a custom UV mapping node group, it just requires a lot of knowledge and effort. The Box mapping being part of the texture sampling node is a convenience feature. Offloading this duty onto the user will lead to workflow slow downs, messier, overcomplicated node networks and higher skill ceiling. It also will not stop bug reports. Most users will not know that the normal input in the texture samplers is mandatory to be used when using the box mapping, so they will still keep reporting broken box mapping. Normal input has also no place existing in the texture sampler node. This whole solution significantly increases complexity of texture sampler, will increase skill ceiling of using texture sampler, and will do nearly 0 work in the way of stopping these bug reports. Let's just do this right, instead of throwing another node input at the user and telling them to do the math themselves. If most other offline renderers offering built in triplanar mapping can do it, there's no reason Cycles shouldn't. Blender's main issue now in 2023 is worsening UX and no dedicated UX team. Let's not aggravate this problem by introducing brand new features with bad UX.

Tbh I feel like the box mapping is a half baked feature as it is now. For some textures it can work fine as is, but for other stuff you NEED to be able to rotate it. Why not just have that normal input be only visible when box mapping is active which should make it clear when and why you need it? :)
Edit: Come to think about it that won't probably work either when you are rotating it "outside" the node. What we really need is a Triplanar Image Texture node like what Maya or other softwares have.

Tbh I feel like the box mapping is a half baked feature as it is now. For some textures it can work fine as is, but for other stuff you NEED to be able to rotate it. Why not just have that normal input be only visible when box mapping is active which should make it clear when and why you need it? :) Edit: Come to think about it that won't probably work either when you are rotating it "outside" the node. What we really need is a Triplanar Image Texture node like what Maya or other softwares have.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No Assignees
17 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#44014
No description provided.