Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spray and Paint tools are acting like one another #248

Closed
gunbuilderguy opened this issue Nov 14, 2023 · 2 comments
Closed

Spray and Paint tools are acting like one another #248

gunbuilderguy opened this issue Nov 14, 2023 · 2 comments

Comments

@gunbuilderguy
Copy link

gunbuilderguy commented Nov 14, 2023

Terrain3D version

v0.8.3 alpha gd4.1.1

Godot version

v4.1.1 stable version And v4.1.3 stable version

System information

Windows 10

Is the issue reproducable in the demo?

No

Issue description

Hi, i've recently installed this plugin and for some reason, when using the "spray texture" and "paint texture" tools, they somehow seem to have broken behaviors

when using the spray with a different texture, the old texture gets instantly replaced regardless of the opacity value.
It seems to happen at some places where you've painted/sprayed over previously, or over that different texture with the original one. and the same, possibly inverted behavior happens with the "paint texture" tool, mimicking the behavior of the "spray texture" tool.

in the following examples, anything in the green outlines behaves correctly, meanwhile anything in the red areas are instantly, sharply replaced by the stroke of the spray brush.
the textures used are the third one in the list that's applied with the tool, and the original one is the fourth texture.

image
image

it has the rather jarring effect of disproportionately affecting some places you've sprayed on once compared to one done multiple times (edge of the two textures),
Aswell as the very annoying problem of not being able to blend textures regardless of the opacity value
Lt8XmKzl5t

Logs

I did have a problem earlier before i switched renderer from Compatibility to Forward+, tripping dozens of
USER SHADER ERROR: Built-in function "fma(float, float, float)" is only supported on high-end platforms. at: (null) (:189) USER ERROR: Shader compilation failed. at: set_code (drivers/gles3/storage/material_storage.cpp:2932)
but after changing renderer those errors stopped showing

the only log i get now:
USER WARNING: Terrain3D::_initialize: Storage version 0.80 will be updated upon save at: push_warning (./core/variant/variant_utility.cpp:925)

@gunbuilderguy
Copy link
Author

I think i actually found out, it might not be a bug, but using spray paint is completely different compared to the normal paint, where using it makes it into some sort of 0-strength mark that can be instantly written over by other sprayed textures, making them not blend with each other.
the only way to have a permanent one is to first use the paint brush and then detail that base with the spray of another texture, they'll blend unlike two sprays.

If this is not a bug but a feature then consider this issue closed.

@TokisanGames
Copy link
Owner

This system uses two textures, a base layer and an overlay texture. Paint does the base layer, spray does the overlay texture. You can only blend two textures in any given control map pixel (aka terrain vertex). When you spray, you replace the overlay texture, regardless of opacity.

Blending does work fine and can look natural. The challenge is you don't know how the tools work, I haven't yet made a tutorial video, and you don't have an intuitive sense of painting with them yet. The technique you should use is:

  • Paint in large swathes first. Mountains, grass, paths, and variant textures.
  • Spray the edges to blend to hide lines and seams

Also see #243

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants