Sample Texture Node for trees and flowers scattering #82584

Closed
opened 2020-11-10 14:56:25 +01:00 by Dalai Felinto · 24 comments

image.png

This node is for the trees and flowers scattering workflow.


{F9603276 size=full}

![image.png](https://archive.blender.org/developer/F9252767/image.png) This node is for the trees and flowers scattering workflow. --- {[F9603276](https://archive.blender.org/developer/F9603276/image.png) size=full}
Author
Owner

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Author
Owner

Added subscriber: @dfelinto

Added subscriber: @dfelinto
Contributor

Added subscriber: @KenzieMac130

Added subscriber: @KenzieMac130
Contributor

It seems like this is just pretty close to a duplicate of the image texture node based on the mockup. Why can't there just be a set float or set vector attribute node that accepts blender's existing texture nodes as well as any surface varying math node setups?

It seems like this is just pretty close to a duplicate of the image texture node based on the mockup. Why can't there just be a set float or set vector attribute node that accepts blender's existing texture nodes as well as any surface varying math node setups?
Author
Owner

There is no image texture node at the moment. The design considered using an "image-base" pipeline, but for now it is focusing on an attribute pipeline. That means the texture doesn't exist on its own, but only in relation to a UV Map and the attribute the user intends to map it to.

There is no image texture node at the moment. The design considered using an "image-base" pipeline, but for now it is focusing on an attribute pipeline. That means the texture doesn't exist on its own, but only in relation to a UV Map and the attribute the user intends to map it to.
Contributor

In #82584#1052289, @dfelinto wrote:
There is no image texture node at the moment. The design considered using an "image-base" pipeline, but for now it is focusing on an attribute pipeline. That means the texture doesn't exist on its own, but only in relation to a UV Map and the attribute the user intends to map it to.

I'm trying to figure out the issue here... I might be not understanding. It seems like the system doesn't handle surface varying attributes at the geometry node level. So user defined math that runs some sort of calculation per vertex/face would need to be piped through a "texture" (which based ony understanding of the design is basically going to be reusing the goodies of the material graph).

So if I wanted to say make an attribute or mask of a surfaces pointiness multiplied by a dot product vector and a grunge texture map I would need to create a texture graph that does such a thing and feed it into this node correct?

Or is this going to be a transition node for while blender does not have the new texture node system to hook into the old one?

(Edit: I will try to contact people on blender chat. Just figured the task page was the best place to leave open questions about design.)

> In #82584#1052289, @dfelinto wrote: > There is no image texture node at the moment. The design considered using an "image-base" pipeline, but for now it is focusing on an attribute pipeline. That means the texture doesn't exist on its own, but only in relation to a UV Map and the attribute the user intends to map it to. I'm trying to figure out the issue here... I might be not understanding. It seems like the system doesn't handle surface varying attributes at the geometry node level. So user defined math that runs some sort of calculation per vertex/face would need to be piped through a "texture" (which based ony understanding of the design is basically going to be reusing the goodies of the material graph). So if I wanted to say make an attribute or mask of a surfaces pointiness multiplied by a dot product vector and a grunge texture map I would need to create a texture graph that does such a thing and feed it into this node correct? Or is this going to be a transition node for while blender does not have the new texture node system to hook into the old one? (Edit: I will try to contact people on blender chat. Just figured the task page was the best place to leave open questions about design.)
Dalai Felinto changed title from Sample Texture Node to Sample Texture Node for trees and flowers scattering 2020-11-13 15:19:10 +01:00
Jacques Lucke self-assigned this 2020-11-30 15:09:52 +01:00
Jacques Lucke removed their assignment 2020-12-01 14:52:29 +01:00
Member

Added subscriber: @JacquesLucke

Added subscriber: @JacquesLucke
Jacques Lucke self-assigned this 2020-12-03 18:50:58 +01:00

Added subscriber: @valera-8

Added subscriber: @valera-8

Would be really cool if we could tie this to the texture generated in the Material editor, can be done like so:

  • Shader Tree Name: "Some Material"

  • Unique Node Name: "Node Name"

It would use the coordinates in the material editor. Imagine previewing the texture live on the object and then right away using it to distribute objects or displace mesh, etc..

Would be really cool if we could tie this to the texture generated in the Material editor, can be done like so: - Shader Tree Name: "Some Material" - Unique Node Name: "Node Name" It would use the coordinates in the material editor. Imagine previewing the texture live on the object and then right away using it to distribute objects or displace mesh, etc..
Member

The WIP code for this is in temp-geometry-nodes-sample-texture. It can only sample textures based on the position currently. I'll not be able to finish uv support in this sprint. It also requires changes to the distribute node, because the uv maps (and possibly all other attributes as well) have to be added to the output points.

The WIP code for this is in `temp-geometry-nodes-sample-texture`. It can only sample textures based on the position currently. I'll not be able to finish uv support in this sprint. It also requires changes to the distribute node, because the uv maps (and possibly all other attributes as well) have to be added to the output points.

Added subscriber: @victorlouis

Added subscriber: @victorlouis

This issue was referenced by 425e706921

This issue was referenced by 425e706921a8f986921b8b9c429874fed98e9a10
Author
Owner

Added subscriber: @SimonThommes

Added subscriber: @SimonThommes
Author
Owner

@JacquesLucke for the records, remember to add a screenshot of the final node here. It helps to speed up testing.

If I remember correctly this is fully working. But I will let @SimonThommes to have a final say on it.

By the way, feedback by Andy: To add "Generated" mapping, besides UV, for when objects don't have UV mapping.

@JacquesLucke for the records, remember to add a screenshot of the final node here. It helps to speed up testing. If I remember correctly this is fully working. But I will let @SimonThommes to have a final say on it. By the way, feedback by Andy: To add "Generated" mapping, besides UV, for when objects don't have UV mapping.
Author
Owner

Also, there is the pending issue of the texture panel. IIRC the design is to follow the "Displace Modifier" design. If this won't be part of this task could you please create a new task in the product backlog so we don't forget that?

Also, there is the pending issue of the texture panel. IIRC the design is to follow the "Displace Modifier" design. If this won't be part of this task could you please create a new task in the product backlog so we don't forget that?
Member

@dfelinto @JacquesLucke Yes, this task is done, I would say. But we should create new tasks for:

  • adding the texture as a modifier texture when pressing New + having a button to jump to said texture in the properties panel like in a displacement modifier
  • supporting UV maps as attributes without a point distribute node (will prosumably not be done before we handle different domains (?))
  • supporting generated coordinates as an attribute
@dfelinto @JacquesLucke Yes, this task is done, I would say. But we should create new tasks for: - adding the texture as a modifier texture when pressing `New` + having a button to jump to said texture in the properties panel like in a displacement modifier - supporting UV maps as attributes without a point distribute node (will prosumably not be done before we handle different domains (?)) - supporting generated coordinates as an attribute
Contributor

Added subscriber: @Rawalanche

Added subscriber: @Rawalanche
Contributor

What is the point of having such node when it can read only the old, Blender Internal style textures, and not Shader Editor texture node networks? This is the exact same issue as the one that severely limits the usefulness of the displace modifier. If your use case is truly scattering, as you say, then it makes really no sense for users to not have any ability to utilize the texture nodes.

My point is that the order seems to be all wrong. Ability to utilize node based texture networks in both Geometry Nodes and modifiers, such as Displacement Modifier would have much, much bigger impact on the overall capability of procedural modeling in Blender (think creating procedural rocks, cliffs, landscapes), than the geometry nodes with the support of old, gimped Blender Internal texture system will ever have.

What is the point of having such node when it can read only the old, Blender Internal style textures, and not Shader Editor texture node networks? This is the exact same issue as the one that severely limits the usefulness of the displace modifier. If your use case is truly scattering, as you say, then it makes really no sense for users to not have any ability to utilize the texture nodes. My point is that the order seems to be all wrong. Ability to utilize node based texture networks in both Geometry Nodes and modifiers, such as Displacement Modifier would have much, much bigger impact on the overall capability of procedural modeling in Blender (think creating procedural rocks, cliffs, landscapes), than the geometry nodes with the support of old, gimped Blender Internal texture system will ever have.
Member

@SimonThommes sounds good to me. I assume we could have a node that creates a new attribute that contains the generated coordinates? It's also possible to do this in the Sample Texture node of course. This question can also be answered in the new task.

@SimonThommes sounds good to me. I assume we could have a node that creates a new attribute that contains the generated coordinates? It's also possible to do this in the Sample Texture node of course. This question can also be answered in the new task.
Member

Added subscribers: @HooglyBoogly, @lichtwerk

Added subscribers: @HooglyBoogly, @lichtwerk
Member

In #82584#1103373, @SimonThommes wrote:
@dfelinto @JacquesLucke Yes, this task is done, I would say. But we should create new tasks for:

  • adding the texture as a modifier texture when pressing New + having a button to jump to said texture in the properties panel like in a displacement modifier

Just noting that in D9813: Sculpt / Paint: show "Show Texture in texture tab" button @HooglyBoogly raised the point to have some utility function that will determine the "right" Properties Editor to display this in:

In D9813#246700, @HooglyBoogly wrote:
I'm not sure this should just use the first property editor it finds. If is more than one open the choice feels random.

I realize this opens more questions, expanding the scope of this patch, but I think it's important, the area it changes can be the one on the opposite side of the screen when there are two open.

My suggestion is adding a BKE_screen_find_closest_area_xy function that could find the closest property editor. Maybe some others have issues with this sort of "smart" behavior, but it's better than nothing in my opinion.

I could have a look again and do it for this node as well?

> In #82584#1103373, @SimonThommes wrote: > @dfelinto @JacquesLucke Yes, this task is done, I would say. But we should create new tasks for: > - adding the texture as a modifier texture when pressing `New` + having a button to jump to said texture in the properties panel like in a displacement modifier Just noting that in [D9813: Sculpt / Paint: show "Show Texture in texture tab" button](https://archive.blender.org/developer/D9813) @HooglyBoogly raised the point to have some utility function that will determine the "right" Properties Editor to display this in: > In [D9813](https://archive.blender.org/developer/D9813)#246700, @HooglyBoogly wrote: > I'm not sure this should just use the first property editor it finds. If is more than one open the choice feels random. > > I realize this opens more questions, expanding the scope of this patch, but I think it's important, the area it changes can be the one on the opposite side of the screen when there are two open. > > My suggestion is adding a `BKE_screen_find_closest_area_xy` function that could find the closest property editor. Maybe some others have issues with this sort of "smart" behavior, but it's better than nothing in my opinion. I could have a look again and do it for this node as well?
Member

@lichtwerk If you want to look into that, please go ahead. I don't consider this to be part of this task anymore.

@lichtwerk If you want to look into that, please go ahead. I don't consider this to be part of this task anymore.
Member

@SimonThommes Can you create the tasks you mentioned?

@SimonThommes Can you create the tasks you mentioned?
Author
Owner

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
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 project
No Assignees
9 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#82584
No description provided.