Fixed normal map and updated 3d preview

This commit is contained in:
RodZill4 2019-10-13 22:06:13 +02:00
parent 28654f3eba
commit 477eec692b
13 changed files with 101 additions and 1748 deletions

View File

@ -0,0 +1,3 @@
extends Spatial
export var environment : Environment

View File

@ -1 +1 @@
{"connections":[{"from":"nm_convolution","from_port":0,"to":"nm_postprocess","to_port":0},{"from":"nm_postprocess","from_port":0,"to":"gen_outputs","to_port":0},{"from":"gen_inputs","from_port":0,"to":"buffer","to_port":0},{"from":"buffer","from_port":0,"to":"nm_convolution","to_port":0}],"label":"Normal Map","name":"normal_map","node_position":{"x":0,"y":0},"nodes":[{"mask":3,"name":"gen_inputs","node_position":{"x":-839.25,"y":177.25},"parameters":{"size":4},"ports":[{"name":"in","type":"rgba"}],"type":"ios"},{"mask":3,"name":"gen_outputs","node_position":{"x":-434.25,"y":318.25},"parameters":{"size":4},"ports":[{"name":"in","type":"rgba"}],"type":"ios"},{"convolution_params":{"input_type":"f","matrix":[[[-1,-1,0],[0,-2,0],[1,-1,0]],[[-2,0,0],0,[2,0,0]],[[-1,1,0],[0,2,0],[1,1,0]]],"output_type":"rgb","x":1,"y":1},"name":"nm_convolution","node_position":{"x":-669.25,"y":245.25},"parameters":{"size":5},"type":"shader"},{"name":"nm_postprocess","node_position":{"x":-678.25,"y":315.25},"parameters":{"amount":0.99,"size":5},"shader_model":{"global":"","inputs":[{"default":"vec3(0.0)","label":"","name":"in","type":"rgb"}],"instance":"","name":"NormalMapPostProcess","outputs":[{"rgb":"0.5*normalize($in($uv)*$amount*$size/128.0-vec3(0.0, 0.0, 1.0))+vec3(0.5)","type":"rgb"}],"parameters":[{"default":9,"first":4,"label":"","last":11,"name":"size","type":"size"},{"default":1,"label":"","max":2,"min":0,"name":"amount","step":0.005,"type":"float"}]},"type":"shader"},{"name":"buffer","node_position":{"x":-669.663818,"y":174.60614},"parameters":{"size":5},"type":"buffer"},{"name":"gen_parameters","node_position":{"x":-713.910156,"y":24.083313},"parameters":{"param0":5,"param1":0.99},"type":"remote","widgets":[{"label":"Unnamed","linked_widgets":[{"node":"buffer","widget":"size"},{"node":"nm_convolution","widget":"size"},{"node":"nm_postprocess","widget":"size"}],"type":"linked_control"},{"label":"Unnamed","linked_widgets":[{"node":"nm_postprocess","widget":"amount"}],"type":"linked_control"}]}],"parameters":{"amount":0.35,"param0":5,"param1":0.99,"size":4},"type":"graph"} {"connections":[{"from":"nm_convolution","from_port":0,"to":"nm_postprocess","to_port":0},{"from":"nm_postprocess","from_port":0,"to":"gen_outputs","to_port":0},{"from":"gen_inputs","from_port":0,"to":"buffer","to_port":0},{"from":"buffer","from_port":0,"to":"nm_convolution","to_port":0}],"label":"Normal Map","name":"normal_map","node_position":{"x":0,"y":0},"nodes":[{"name":"gen_inputs","node_position":{"x":-839.25,"y":177.25},"parameters":{"size":4},"ports":[{"name":"in","type":"rgba"}],"type":"ios"},{"name":"gen_outputs","node_position":{"x":-434.25,"y":318.25},"parameters":{"size":4},"ports":[{"name":"in","type":"rgba"}],"type":"ios"},{"convolution_params":{"input_type":"f","matrix":[[[-1,-1,0],[0,-2,0],[1,-1,0]],[[-2,0,0],0,[2,0,0]],[[-1,1,0],[0,2,0],[1,1,0]]],"output_type":"rgb","x":1,"y":1},"name":"nm_convolution","node_position":{"x":-666.25,"y":246.25},"parameters":{"size":6},"type":"shader"},{"name":"nm_postprocess","node_position":{"x":-667.25,"y":320.25},"parameters":{"amount":0.95,"size":6},"shader_model":{"code":"","global":"","inputs":[{"default":"vec3(0.0)","label":"","name":"in","type":"rgb"}],"instance":"","name":"NormalMapPostProcess","outputs":[{"rgb":"0.5*normalize($in($uv)*$amount*vec3(-1.0, 1.0, 1.0)*$size/128.0-vec3(0.0, 0.0, 1.0))+vec3(0.5)","type":"rgb"}],"parameters":[{"default":8,"first":4,"label":"","last":11,"name":"size","type":"size"},{"default":1,"label":"","max":2,"min":0,"name":"amount","step":0.005,"type":"float"}]},"type":"shader"},{"name":"buffer","node_position":{"x":-669.663818,"y":174.60614},"parameters":{"size":6},"type":"buffer"},{"name":"gen_parameters","node_position":{"x":-713.910156,"y":24.083313},"parameters":{"param0":6,"param1":0.99},"type":"remote","widgets":[{"label":"Unnamed","linked_widgets":[{"node":"buffer","widget":"size"},{"node":"nm_convolution","widget":"size"},{"node":"nm_postprocess","widget":"size"}],"type":"linked_control"},{"label":"Unnamed","linked_widgets":[{"node":"nm_postprocess","widget":"amount"}],"type":"linked_control"}]}],"parameters":{"amount":0.5,"param0":6,"param1":0.99,"size":4},"type":"graph"}

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -10,24 +10,35 @@ const ENVIRONMENTS = [
onready var objects = $MaterialPreview/Preview3d/Objects onready var objects = $MaterialPreview/Preview3d/Objects
onready var current_object = objects.get_child(0) onready var current_object = objects.get_child(0)
onready var environments = $MaterialPreview/Preview3d/Environments
onready var current_environment = environments.get_child(0)
signal need_update signal need_update
signal show_background_preview signal show_background_preview
func _ready(): func _ready():
current_object.visible = true
$Config/Model.clear() $Config/Model.clear()
for o in objects.get_children(): for o in objects.get_children():
var m = o.get_surface_material(0) var m = o.get_surface_material(0)
o.set_surface_material(0, m.duplicate()) o.set_surface_material(0, m.duplicate())
$Config/Model.add_item(o.name) $Config/Model.add_item(o.name)
call_deferred("_on_Model_item_selected", 0)
$Config/Environment.clear()
for e in environments.get_children():
$Config/Environment.add_item(e.name)
call_deferred("_on_Environment_item_selected", 0)
$MaterialPreview/Preview3d/ObjectRotate.play("rotate") $MaterialPreview/Preview3d/ObjectRotate.play("rotate")
$Preview2D.material = $Preview2D.material.duplicate(true) $Preview2D.material = $Preview2D.material.duplicate(true)
_on_Environment_item_selected($Config/Environment.selected)
_on_Preview_resized() _on_Preview_resized()
$MaterialPreview/Preview3d/CameraPivot/Camera/RemoteTransform.set_remote_node("../../../../../../../ProjectsPane/BackgroundPreview/Viewport/Camera") $MaterialPreview/Preview3d/CameraPivot/Camera/RemoteTransform.set_remote_node("../../../../../../../ProjectsPane/BackgroundPreview/Viewport/Camera")
func _on_Environment_item_selected(id): func _on_Environment_item_selected(id):
$MaterialPreview/Preview3d/WorldEnvironment.environment.background_sky.panorama = load("res://addons/material_maker/panoramas/"+ENVIRONMENTS[id]+".hdr") current_environment.visible = false
current_environment = environments.get_child(id)
print(current_environment.environment)
$MaterialPreview/Preview3d/CameraPivot/Camera.set_environment(current_environment.environment)
get_node("../../ProjectsPane/BackgroundPreview/Viewport/Camera").set_environment(current_environment.environment)
current_environment.visible = true
func _on_Model_item_selected(id): func _on_Model_item_selected(id):
current_object.visible = false current_object.visible = false
@ -62,6 +73,9 @@ func on_gui_input(event):
if event is InputEventMouseButton: if event is InputEventMouseButton:
$MaterialPreview/Preview3d/ObjectRotate.stop() $MaterialPreview/Preview3d/ObjectRotate.stop()
elif event is InputEventMouseMotion: elif event is InputEventMouseMotion:
if event.button_mask != 0: if event.button_mask & BUTTON_MASK_LEFT:
$MaterialPreview/Preview3d/Objects.rotation.y += 0.01*event.relative.x $MaterialPreview/Preview3d/Objects.rotation.y += 0.01*event.relative.x
$MaterialPreview/Preview3d/Objects.rotation.x += 0.01*event.relative.y
elif event.button_mask & BUTTON_MASK_RIGHT:
$MaterialPreview/Preview3d/CameraPivot.rotation.y += 0.01*event.relative.x
$MaterialPreview/Preview3d/CameraPivot.rotation.x -= 0.01*event.relative.y $MaterialPreview/Preview3d/CameraPivot.rotation.x -= 0.01*event.relative.y

View File

@ -55,12 +55,12 @@ selected = 0
[node name="Environment" type="OptionButton" parent="Config"] [node name="Environment" type="OptionButton" parent="Config"]
margin_left = 104.0 margin_left = 104.0
margin_right = 204.0 margin_right = 231.0
margin_bottom = 20.0 margin_bottom = 20.0
rect_min_size = Vector2( 100, 0 ) rect_min_size = Vector2( 100, 0 )
text = "Park" text = "Epping Forest"
items = [ "Experiment", null, false, 0, null, "Lobby", null, false, 1, null, "Night", null, false, 2, null, "Park", null, false, 3, null, "Schelde", null, false, 4, null ] items = [ "Epping Forest", null, false, -1, null, "Moonless Golf", null, false, -1, null ]
selected = 3 selected = 0
[node name="Button" type="Button" parent="Config"] [node name="Button" type="Button" parent="Config"]
margin_left = 372.0 margin_left = 372.0

View File

@ -1,15 +1,17 @@
[gd_scene load_steps=6 format=2] [gd_scene load_steps=14 format=2]
[ext_resource path="res://addons/material_maker/preview_objects.tscn" type="PackedScene" id=1] [ext_resource path="res://addons/material_maker/preview_objects.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/material_maker/panoramas/park.hdr" type="Texture" id=2] [ext_resource path="res://addons/material_maker/environment.gd" type="Script" id=2]
[ext_resource path="res://addons/material_maker/panoramas/epping_forest_01.hdr" type="Texture" id=3]
[ext_resource path="res://addons/material_maker/panoramas/moonless_golf.hdr" type="Texture" id=4]
[sub_resource type="PanoramaSky" id=1] [sub_resource type="PanoramaSky" id=1]
radiance_size = 2
panorama = ExtResource( 2 )
[sub_resource type="Environment" id=2] [sub_resource type="Environment" id=2]
background_mode = 2 background_mode = 2
background_sky = SubResource( 1 ) background_sky = SubResource( 1 )
ambient_light_color = Color( 0.992157, 1, 0.709804, 1 )
ambient_light_energy = 0.3
[sub_resource type="Animation" id=3] [sub_resource type="Animation" id=3]
loop = true loop = true
@ -26,18 +28,36 @@ tracks/0/keys = {
"values": [ Vector3( 0, 0, 0 ), Vector3( 0, 360, 0 ) ] "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 360, 0 ) ]
} }
[sub_resource type="PanoramaSky" id=4]
resource_local_to_scene = true
panorama = ExtResource( 3 )
[sub_resource type="Environment" id=5]
background_mode = 2
background_sky = SubResource( 4 )
[sub_resource type="SpatialMaterial" id=6]
flags_unshaded = true
[sub_resource type="SphereMesh" id=7]
material = SubResource( 6 )
radius = 0.25
height = 0.5
[sub_resource type="PanoramaSky" id=8]
resource_local_to_scene = true
panorama = ExtResource( 4 )
[sub_resource type="Environment" id=9]
resource_local_to_scene = true
background_mode = 2
background_sky = SubResource( 8 )
[node name="Preview3d" type="Spatial"] [node name="Preview3d" type="Spatial"]
[node name="Objects" parent="." instance=ExtResource( 1 )] [node name="Objects" parent="." instance=ExtResource( 1 )]
transform = Transform( -0.799512, 0, 0.60065, 0, 1, 0, -0.60065, 0, -0.799512, 0, 0, 0 ) transform = Transform( -0.799512, 0, 0.60065, 0, 1, 0, -0.60065, 0, -0.799512, 0, 0, 0 )
[node name="OmniLight" type="OmniLight" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.345557, 2.74973, -3.97441 )
omni_range = 6.46518
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource( 2 )
[node name="CameraPivot" type="Spatial" parent="."] [node name="CameraPivot" type="Spatial" parent="."]
transform = Transform( 1, 0, 0, 0, 0.766044, 0.642788, 0, -0.642788, 0.766044, 0, 0, 0 ) transform = Transform( 1, 0, 0, 0, 0.766044, 0.642788, 0, -0.642788, 0.766044, 0, 0, 0 )
@ -53,3 +73,47 @@ remote_path = NodePath("../../../../../../ProjectsPane/BackgroundPreview/Viewpor
autoplay = "rotate" autoplay = "rotate"
playback_speed = 0.1 playback_speed = 0.1
anims/rotate = SubResource( 3 ) anims/rotate = SubResource( 3 )
[node name="Environments" type="Spatial" parent="."]
[node name="Epping Forest" type="Spatial" parent="Environments"]
script = ExtResource( 2 )
environment = SubResource( 5 )
[node name="Light" type="OmniLight" parent="Environments/Epping Forest"]
transform = Transform( 0.999755, 0.0162074, -0.0150931, 0, 0.681502, 0.731816, 0.0221468, -0.731637, 0.681335, -0.0821358, 3.98251, -2.64581 )
light_energy = 4.9
omni_range = 12.9508
[node name="Mesh" type="MeshInstance" parent="Environments/Epping Forest/Light"]
transform = Transform( 1, 1.11759e-008, -1.30385e-008, -1.86265e-009, 1, -4.17233e-007, 0, 0, 1, 0, 0, 0 )
cast_shadow = 0
mesh = SubResource( 7 )
material/0 = null
[node name="Moonless Golf" type="Spatial" parent="Environments"]
visible = false
script = ExtResource( 2 )
environment = SubResource( 9 )
[node name="Light1" type="OmniLight" parent="Environments/Moonless Golf"]
transform = Transform( 0.999755, 0.0162074, -0.0150931, 0, 0.681502, 0.731816, 0.0221468, -0.731637, 0.681335, -2.22238, 3.98251, -2.64581 )
light_energy = 4.9
omni_range = 12.9508
[node name="Mesh" type="MeshInstance" parent="Environments/Moonless Golf/Light1"]
transform = Transform( 1, 1.11759e-008, -1.39698e-008, -1.86265e-009, 1, -4.17233e-007, 0, 0, 1, 0, 0, 0 )
cast_shadow = 0
mesh = SubResource( 7 )
material/0 = null
[node name="Light2" type="OmniLight" parent="Environments/Moonless Golf"]
transform = Transform( 0.999755, 0.0162074, -0.0150931, 0, 0.681502, 0.731816, 0.0221468, -0.731637, 0.681335, 2.34329, 3.98251, -2.64581 )
light_energy = 4.9
omni_range = 12.9508
[node name="Mesh" type="MeshInstance" parent="Environments/Moonless Golf/Light2"]
transform = Transform( 1, 1.11759e-008, -1.39698e-008, -1.86265e-009, 1, -4.17233e-007, 0, 0, 1, 0, 0, 0 )
cast_shadow = 0
mesh = SubResource( 7 )
material/0 = null

View File

@ -43,7 +43,6 @@ uv1_scale = Vector3( 4, 4, 4 )
transform = Transform( -0.685898, 0, 0.727691, 0, 1, 0, -0.727691, 0, -0.685898, 0, 0, 0 ) transform = Transform( -0.685898, 0, 0.727691, 0, 1, 0, -0.727691, 0, -0.685898, 0, 0, 0 )
[node name="Cube" type="MeshInstance" parent="."] [node name="Cube" type="MeshInstance" parent="."]
visible = false
mesh = SubResource( 1 ) mesh = SubResource( 1 )
material/0 = SubResource( 2 ) material/0 = SubResource( 2 )