mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-11 05:29:02 +08:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
b663fa2824
@ -23,7 +23,7 @@ class ConvexHullNode(SceneNode):
|
|||||||
self._original_parent = parent
|
self._original_parent = parent
|
||||||
|
|
||||||
# Color of the drawn convex hull
|
# Color of the drawn convex hull
|
||||||
self._color = Color(35, 35, 35, 192)
|
self._color = Color(0.4, 0.4, 0.4, 1.0)
|
||||||
|
|
||||||
# The y-coordinate of the convex hull mesh. Must not be 0, to prevent z-fighting.
|
# The y-coordinate of the convex hull mesh. Must not be 0, to prevent z-fighting.
|
||||||
self._mesh_height = 0.1
|
self._mesh_height = 0.1
|
||||||
|
@ -95,11 +95,11 @@ class PlatformPhysics:
|
|||||||
# Get the overlap distance for both convex hulls. If this returns None, there is no intersection.
|
# Get the overlap distance for both convex hulls. If this returns None, there is no intersection.
|
||||||
head_hull = node.callDecoration("getConvexHullHead")
|
head_hull = node.callDecoration("getConvexHullHead")
|
||||||
if head_hull:
|
if head_hull:
|
||||||
overlap = head_hull.intersectsPolygon(other_node.callDecoration("getConvexHull"))
|
overlap = head_hull.intersectsPolygon(other_node.callDecoration("getConvexHullHead"))
|
||||||
if not overlap:
|
if not overlap:
|
||||||
other_head_hull = other_node.callDecoration("getConvexHullHead")
|
other_head_hull = other_node.callDecoration("getConvexHullHead")
|
||||||
if other_head_hull:
|
if other_head_hull:
|
||||||
overlap = node.callDecoration("getConvexHull").intersectsPolygon(other_head_hull)
|
overlap = node.callDecoration("getConvexHullHead").intersectsPolygon(other_head_hull)
|
||||||
else:
|
else:
|
||||||
own_convex_hull = node.callDecoration("getConvexHull")
|
own_convex_hull = node.callDecoration("getConvexHull")
|
||||||
other_convex_hull = other_node.callDecoration("getConvexHull")
|
other_convex_hull = other_node.callDecoration("getConvexHull")
|
||||||
|
@ -252,6 +252,9 @@ class CuraEngineBackend(Backend):
|
|||||||
return
|
return
|
||||||
|
|
||||||
super()._onSocketError(error)
|
super()._onSocketError(error)
|
||||||
|
if error.getErrorCode() == Arcus.ErrorCode.Debug:
|
||||||
|
return
|
||||||
|
|
||||||
self._terminate()
|
self._terminate()
|
||||||
|
|
||||||
if error.getErrorCode() not in [Arcus.ErrorCode.BindFailedError, Arcus.ErrorCode.ConnectionResetError, Arcus.ErrorCode.Debug]:
|
if error.getErrorCode() not in [Arcus.ErrorCode.BindFailedError, Arcus.ErrorCode.ConnectionResetError, Arcus.ErrorCode.Debug]:
|
||||||
|
@ -12,6 +12,9 @@ class UMOUpgradeSelection(MachineAction):
|
|||||||
super().__init__("UMOUpgradeSelection", catalog.i18nc("@action", "Select upgrades"))
|
super().__init__("UMOUpgradeSelection", catalog.i18nc("@action", "Select upgrades"))
|
||||||
self._qml_url = "UMOUpgradeSelectionMachineAction.qml"
|
self._qml_url = "UMOUpgradeSelectionMachineAction.qml"
|
||||||
|
|
||||||
|
def _reset(self):
|
||||||
|
self.heatedBedChanged.emit()
|
||||||
|
|
||||||
heatedBedChanged = pyqtSignal()
|
heatedBedChanged = pyqtSignal()
|
||||||
|
|
||||||
@pyqtProperty(bool, notify = heatedBedChanged)
|
@pyqtProperty(bool, notify = heatedBedChanged)
|
||||||
|
@ -44,7 +44,7 @@ Cura.MachineAction
|
|||||||
|
|
||||||
text: catalog.i18nc("@label", "Heated bed (official kit or self-built)")
|
text: catalog.i18nc("@label", "Heated bed (official kit or self-built)")
|
||||||
checked: manager.hasHeatedBed
|
checked: manager.hasHeatedBed
|
||||||
onClicked: manager.hasHeatedBed ? manager.removeHeatedBed() : manager.addHeatedBed()
|
onClicked: checked ? manager.addHeatedBed() : manager.removeHeatedBed()
|
||||||
}
|
}
|
||||||
|
|
||||||
UM.I18nCatalog { id: catalog; name: "cura"; }
|
UM.I18nCatalog { id: catalog; name: "cura"; }
|
||||||
|
@ -630,9 +630,8 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
"value": "line_width",
|
"value": "line_width",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
"support_roof_line_width":
|
"support_roof_line_width":
|
||||||
{
|
{
|
||||||
@ -645,9 +644,8 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"enabled": "support_roof_enable",
|
"enabled": "support_roof_enable",
|
||||||
"value": "line_width",
|
"value": "line_width",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
"prime_tower_line_width":
|
"prime_tower_line_width":
|
||||||
{
|
{
|
||||||
@ -1444,10 +1442,9 @@
|
|||||||
"maximum_value_warning": "150",
|
"maximum_value_warning": "150",
|
||||||
"default_value": 60,
|
"default_value": 60,
|
||||||
"value": "speed_print",
|
"value": "speed_print",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false,
|
"settable_per_extruder": true,
|
||||||
"children":
|
"children":
|
||||||
{
|
{
|
||||||
"speed_support_infill":
|
"speed_support_infill":
|
||||||
@ -1461,10 +1458,9 @@
|
|||||||
"maximum_value": "299792458000",
|
"maximum_value": "299792458000",
|
||||||
"maximum_value_warning": "150",
|
"maximum_value_warning": "150",
|
||||||
"value": "speed_support",
|
"value": "speed_support",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
"speed_support_roof":
|
"speed_support_roof":
|
||||||
{
|
{
|
||||||
@ -1478,9 +1474,8 @@
|
|||||||
"maximum_value_warning": "150",
|
"maximum_value_warning": "150",
|
||||||
"enabled": "support_roof_enable and support_enable",
|
"enabled": "support_roof_enable and support_enable",
|
||||||
"value": "speed_support / 1.5",
|
"value": "speed_support / 1.5",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1650,10 +1645,9 @@
|
|||||||
"maximum_value_warning": "10000",
|
"maximum_value_warning": "10000",
|
||||||
"default_value": 3000,
|
"default_value": 3000,
|
||||||
"value": "acceleration_print",
|
"value": "acceleration_print",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"enabled": "acceleration_enabled and support_enable",
|
"enabled": "acceleration_enabled and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false,
|
"settable_per_extruder": true,
|
||||||
"children": {
|
"children": {
|
||||||
"acceleration_support_infill": {
|
"acceleration_support_infill": {
|
||||||
"label": "Support Infill Acceleration",
|
"label": "Support Infill Acceleration",
|
||||||
@ -1662,13 +1656,12 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 3000,
|
"default_value": 3000,
|
||||||
"value": "acceleration_support",
|
"value": "acceleration_support",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"minimum_value": "0.1",
|
"minimum_value": "0.1",
|
||||||
"minimum_value_warning": "100",
|
"minimum_value_warning": "100",
|
||||||
"maximum_value_warning": "10000",
|
"maximum_value_warning": "10000",
|
||||||
"enabled": "acceleration_enabled and support_enable",
|
"enabled": "acceleration_enabled and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
"acceleration_support_roof": {
|
"acceleration_support_roof": {
|
||||||
"label": "Support Roof Acceleration",
|
"label": "Support Roof Acceleration",
|
||||||
@ -1677,13 +1670,12 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 3000,
|
"default_value": 3000,
|
||||||
"value": "acceleration_support",
|
"value": "acceleration_support",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"minimum_value": "0.1",
|
"minimum_value": "0.1",
|
||||||
"minimum_value_warning": "100",
|
"minimum_value_warning": "100",
|
||||||
"maximum_value_warning": "10000",
|
"maximum_value_warning": "10000",
|
||||||
"enabled": "acceleration_enabled and support_roof_enable and support_enable",
|
"enabled": "acceleration_enabled and support_roof_enable and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1841,10 +1833,9 @@
|
|||||||
"maximum_value_warning": "50",
|
"maximum_value_warning": "50",
|
||||||
"default_value": 20,
|
"default_value": 20,
|
||||||
"value": "jerk_print",
|
"value": "jerk_print",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"enabled": "jerk_enabled and support_enable",
|
"enabled": "jerk_enabled and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false,
|
"settable_per_extruder": true,
|
||||||
"children": {
|
"children": {
|
||||||
"jerk_support_infill": {
|
"jerk_support_infill": {
|
||||||
"label": "Support Infill Jerk",
|
"label": "Support Infill Jerk",
|
||||||
@ -1853,13 +1844,12 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 20,
|
"default_value": 20,
|
||||||
"value": "jerk_support",
|
"value": "jerk_support",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"minimum_value": "0.1",
|
"minimum_value": "0.1",
|
||||||
"minimum_value_warning": "5",
|
"minimum_value_warning": "5",
|
||||||
"maximum_value_warning": "50",
|
"maximum_value_warning": "50",
|
||||||
"enabled": "jerk_enabled and support_enable",
|
"enabled": "jerk_enabled and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
"jerk_support_roof": {
|
"jerk_support_roof": {
|
||||||
"label": "Support Roof Jerk",
|
"label": "Support Roof Jerk",
|
||||||
@ -1868,13 +1858,12 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 20,
|
"default_value": 20,
|
||||||
"value": "jerk_support",
|
"value": "jerk_support",
|
||||||
"global_inherits_stack": "support_extruder_nr",
|
|
||||||
"minimum_value": "0.1",
|
"minimum_value": "0.1",
|
||||||
"minimum_value_warning": "5",
|
"minimum_value_warning": "5",
|
||||||
"maximum_value_warning": "50",
|
"maximum_value_warning": "50",
|
||||||
"enabled": "jerk_enabled and support_roof_enable and support_enable",
|
"enabled": "jerk_enabled and support_roof_enable and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2180,7 +2169,7 @@
|
|||||||
"default_value": "zigzag",
|
"default_value": "zigzag",
|
||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
"support_connect_zigzags":
|
"support_connect_zigzags":
|
||||||
{
|
{
|
||||||
@ -2190,7 +2179,7 @@
|
|||||||
"default_value": true,
|
"default_value": true,
|
||||||
"enabled": "support_enable and (support_pattern == \"zigzag\")",
|
"enabled": "support_enable and (support_pattern == \"zigzag\")",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
"support_infill_rate":
|
"support_infill_rate":
|
||||||
{
|
{
|
||||||
@ -2203,7 +2192,7 @@
|
|||||||
"default_value": 15,
|
"default_value": 15,
|
||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false,
|
"settable_per_extruder": true,
|
||||||
"children": {
|
"children": {
|
||||||
"support_line_distance":
|
"support_line_distance":
|
||||||
{
|
{
|
||||||
@ -2216,7 +2205,7 @@
|
|||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
"value": "(support_line_width * 100) / support_infill_rate * (2 if support_pattern == \"grid\" else (3 if support_pattern == \"triangles\" else 1))",
|
"value": "(support_line_width * 100) / support_infill_rate * (2 if support_pattern == \"grid\" else (3 if support_pattern == \"triangles\" else 1))",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2389,7 +2378,7 @@
|
|||||||
"maximum_value_warning": "100",
|
"maximum_value_warning": "100",
|
||||||
"enabled":"support_roof_enable and support_enable",
|
"enabled":"support_roof_enable and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false,
|
"settable_per_extruder": true,
|
||||||
"children":
|
"children":
|
||||||
{
|
{
|
||||||
"support_roof_line_distance":
|
"support_roof_line_distance":
|
||||||
@ -2403,7 +2392,7 @@
|
|||||||
"value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == \"grid\" else (3 if support_roof_pattern == \"triangles\" else 1))",
|
"value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == \"grid\" else (3 if support_roof_pattern == \"triangles\" else 1))",
|
||||||
"enabled": "support_roof_enable and support_enable",
|
"enabled": "support_roof_enable and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2423,7 +2412,7 @@
|
|||||||
"default_value": "concentric",
|
"default_value": "concentric",
|
||||||
"enabled": "support_roof_enable and support_enable",
|
"enabled": "support_roof_enable and support_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
"support_use_towers":
|
"support_use_towers":
|
||||||
{
|
{
|
||||||
@ -3359,7 +3348,7 @@
|
|||||||
"maximum_value_warning": "9999",
|
"maximum_value_warning": "9999",
|
||||||
"default_value": 0,
|
"default_value": 0,
|
||||||
"value": "9999 if draft_shield_height_limitation == 'full' and draft_shield_enabled else 0.0",
|
"value": "9999 if draft_shield_height_limitation == 'full' and draft_shield_enabled else 0.0",
|
||||||
"enabled": "draft_shield_height_limitation == \"limited\"",
|
"enabled": "draft_shield_enabled and draft_shield_height_limitation == \"limited\"",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": false
|
"settable_per_extruder": false
|
||||||
},
|
},
|
||||||
|
@ -67,6 +67,8 @@ UM.ManagementPage
|
|||||||
enabled: base.currentItem != null && base.currentItem.id != Cura.MachineManager.activeMaterialId
|
enabled: base.currentItem != null && base.currentItem.id != Cura.MachineManager.activeMaterialId
|
||||||
onClicked: Cura.MachineManager.setActiveMaterial(base.currentItem.id)
|
onClicked: Cura.MachineManager.setActiveMaterial(base.currentItem.id)
|
||||||
},
|
},
|
||||||
|
/*
|
||||||
|
// disabled because it has a lot of issues
|
||||||
Button
|
Button
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@action:button", "Duplicate");
|
text: catalog.i18nc("@action:button", "Duplicate");
|
||||||
@ -89,7 +91,7 @@ UM.ManagementPage
|
|||||||
|
|
||||||
Cura.MachineManager.setActiveMaterial(material_id)
|
Cura.MachineManager.setActiveMaterial(material_id)
|
||||||
}
|
}
|
||||||
},
|
}, */
|
||||||
Button
|
Button
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@action:button", "Remove");
|
text: catalog.i18nc("@action:button", "Remove");
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[shaders]
|
[shaders]
|
||||||
vertex =
|
vertex =
|
||||||
uniform highp mat4 u_viewProjectionMatrix;
|
|
||||||
uniform highp mat4 u_modelMatrix;
|
uniform highp mat4 u_modelMatrix;
|
||||||
|
uniform highp mat4 u_viewProjectionMatrix;
|
||||||
uniform highp mat4 u_normalMatrix;
|
uniform highp mat4 u_normalMatrix;
|
||||||
|
|
||||||
attribute highp vec4 a_vertex;
|
attribute highp vec4 a_vertex;
|
||||||
@ -10,7 +10,6 @@ vertex =
|
|||||||
|
|
||||||
varying highp vec3 v_vertex;
|
varying highp vec3 v_vertex;
|
||||||
varying highp vec3 v_normal;
|
varying highp vec3 v_normal;
|
||||||
varying highp vec2 v_uvs;
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
@ -19,56 +18,47 @@ vertex =
|
|||||||
|
|
||||||
v_vertex = world_space_vert.xyz;
|
v_vertex = world_space_vert.xyz;
|
||||||
v_normal = (u_normalMatrix * normalize(a_normal)).xyz;
|
v_normal = (u_normalMatrix * normalize(a_normal)).xyz;
|
||||||
|
|
||||||
v_uvs = a_uvs;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fragment =
|
fragment =
|
||||||
uniform mediump vec4 u_ambientColor;
|
uniform mediump vec4 u_ambientColor;
|
||||||
uniform mediump vec4 u_diffuseColor;
|
uniform mediump vec4 u_diffuseColor;
|
||||||
uniform highp vec3 u_lightPosition;
|
uniform highp vec3 u_lightPosition;
|
||||||
uniform highp vec3 u_viewPosition;
|
|
||||||
uniform mediump float u_opacity;
|
uniform mediump float u_opacity;
|
||||||
uniform sampler2D u_texture;
|
|
||||||
|
|
||||||
varying highp vec3 v_vertex;
|
varying highp vec3 v_vertex;
|
||||||
varying highp vec3 v_normal;
|
varying highp vec3 v_normal;
|
||||||
varying highp vec2 v_uvs;
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
// Copied from platform.shader, removed texture
|
mediump vec4 finalColor = vec4(0.0);
|
||||||
mediump vec4 final_color = vec4(0.0);
|
|
||||||
|
|
||||||
/* Ambient Component */
|
/* Ambient Component */
|
||||||
final_color += u_ambientColor;
|
finalColor += u_ambientColor;
|
||||||
|
|
||||||
highp vec3 normal = normalize(v_normal);
|
highp vec3 normal = normalize(v_normal);
|
||||||
highp vec3 light_dir = normalize(u_lightPosition - v_vertex);
|
highp vec3 lightDir = normalize(u_lightPosition - v_vertex);
|
||||||
|
|
||||||
/* Diffuse Component */
|
/* Diffuse Component */
|
||||||
highp float n_dot_l = clamp(dot(normal, light_dir), 0.0, 1.0);
|
highp float NdotL = clamp(abs(dot(normal, lightDir)), 0.0, 1.0);
|
||||||
final_color += (n_dot_l * u_diffuseColor);
|
finalColor += (NdotL * u_diffuseColor);
|
||||||
|
|
||||||
final_color.a = u_opacity;
|
gl_FragColor = finalColor;
|
||||||
|
gl_FragColor.a = u_opacity;
|
||||||
gl_FragColor = final_color;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[defaults]
|
[defaults]
|
||||||
u_ambientColor = [0.3, 0.3, 0.3, 1.0]
|
u_ambientColor = [0.1, 0.1, 0.1, 1.0]
|
||||||
u_diffuseColor = [1.0, 1.0, 1.0, 1.0]
|
u_diffuseColor = [0.4, 0.4, 0.4, 1.0]
|
||||||
u_opacity = 0.5
|
u_opacity = 0.5
|
||||||
u_texture = 0
|
|
||||||
|
|
||||||
[bindings]
|
[bindings]
|
||||||
u_viewProjectionMatrix = view_projection_matrix
|
|
||||||
u_modelMatrix = model_matrix
|
u_modelMatrix = model_matrix
|
||||||
|
u_viewProjectionMatrix = view_projection_matrix
|
||||||
u_normalMatrix = normal_matrix
|
u_normalMatrix = normal_matrix
|
||||||
u_lightPosition = light_0_position
|
u_lightPosition = light_0_position
|
||||||
u_viewPosition = camera_position
|
|
||||||
|
|
||||||
[attributes]
|
[attributes]
|
||||||
a_vertex = vertex
|
a_vertex = vertex
|
||||||
a_normal = normal
|
a_normal = normal
|
||||||
a_uvs = uv0
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user