mirror of
https://github.com/stan220/godot-docs.git
synced 2026-09-08 17:28:58 +00:00
Fix broken tables + some proofing
This commit is contained in:
@@ -4,364 +4,364 @@ List of classes and documenters
|
||||
===============================
|
||||
|
||||
Status list : Not started, Started, Finished, Removed
|
||||
Class name - Assigned to - Status - Start date - Notes
|
||||
|
||||
| \| Class name \| Assigned to \| Status \| Start date \| Notes \|
|
||||
| \| @GDScript \| \| \|
|
||||
| \| @Global Scope \| \| \|
|
||||
| \| AABB \| bojidar_bg \| Finished \|
|
||||
| \| AcceptDialog \| \| \|
|
||||
| \| AnimatedSprite \| \| \|
|
||||
| \| AnimatedSprite3D \| \| \|
|
||||
| \| Animation \| \| \|
|
||||
| \| AnimationPlayer \| \| \|
|
||||
| \| AnimationTreePlayer \| \| \|
|
||||
| \| Area \| \| \|
|
||||
| \| Area2D \| Ovnuniarchos \| Finished \| 2015/12/22 \| \|
|
||||
| \| Array \| vnen \| Started \| 10/10/2015 \|
|
||||
| \| AtlasTexture \| \| \|
|
||||
| \| AudioServer \| Akien \| Finished \|
|
||||
| \| AudioServerSW \| Akien \| Finished \|
|
||||
| \| AudioStream \| Akien \| Finished \|
|
||||
| \| AudioStreamMPC \| Akien \| Finished \|
|
||||
| \| AudioStreamOGGVorbis \| Akien \| Finished \|
|
||||
| \| AudioStreamPlayback \| Akien \| Finished \|
|
||||
| \| AudioStreamSpeex \| Akien \| Finished \|
|
||||
| \| BackBufferCopy \| \| \|
|
||||
| \| BakedLight \| \| \|
|
||||
| \| BakedLightInstance \| \| \|
|
||||
| \| BakedLightSampler \| \| \|
|
||||
| \| BaseButton \| \| \|
|
||||
| \| BitMap \| \| \|
|
||||
| \| BoneAttachment \| \| \|
|
||||
| \| BoxContainer \| \| \|
|
||||
| \| BoxShape \| \| \|
|
||||
| \| Button \| \| \|
|
||||
| \| ButtonArray \| \| \|
|
||||
| \| ButtonGroup \| \| \|
|
||||
| \| Camera \| \| \|
|
||||
| \| Camera2D \| \| \|
|
||||
| \| CanvasItem \| \| \|
|
||||
| \| CanvasItemMaterial \| \| \|
|
||||
| \| CanvasItemShader \| \| \|
|
||||
| \| CanvasItemShaderGraph \| \| \|
|
||||
| \| CanvasLayer \| \| \|
|
||||
| \| CanvasModulate \| \| \|
|
||||
| \| CapsuleShape \| \| \|
|
||||
| \| CapsuleShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| CenterContainer \| \| \|
|
||||
| \| CheckBox \| \| \|
|
||||
| \| CheckButton \| \| \|
|
||||
| \| CircleShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| CollisionObject \| \| \|
|
||||
| \| CollisionObject2D \| Ovnuniarchos \| Finished \| 2015/12/22 \| \|
|
||||
| \| CollisionPolygon \| \| \| \|
|
||||
| \| CollisionPolygon2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| CollisionShape \| \| \|
|
||||
| \| CollisionShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| Color \| \| \|
|
||||
| \| ColorArray \| \| \|
|
||||
| \| ColorPicker \| \| \|
|
||||
| \| ColorPickerButton \| \| \|
|
||||
| \| ColorRamp \| \| \|
|
||||
| \| ConcavePolygonShape \| \| \|
|
||||
| \| ConcavePolygonShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| ConeTwistJoint \| \| \|
|
||||
| \| ConfigFile \| \| \|
|
||||
| \| ConfirmationDialog \| \| \|
|
||||
| \| Container \| \| \|
|
||||
| \| Control \| \| \|
|
||||
| \| ConvexPolygonShape \| \| \|
|
||||
| \| ConvexPolygonShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| CubeMap \| \| \|
|
||||
| \| Curve2D \| Ovnuniarchos \| Finished \|
|
||||
| \| Curve3D \| Ovnuniarchos \| Finished \|
|
||||
| \| DampedSpringJoint2D \| \| \|
|
||||
| \| Dictionary \| \| \|
|
||||
| \| DirectionalLight \| \| \|
|
||||
| \| Directory \| vnen \| Started \| 11/10/2015 \|
|
||||
| \| EditorFileDialog \| \| \|
|
||||
| \| EditorImportPlugin \| \| \|
|
||||
| \| EditorPlugin \| \| \|
|
||||
| \| EditorScenePostImport \| \| \|
|
||||
| \| EditorScript \| \| \|
|
||||
| \| Environment \| \| \|
|
||||
| \| EventPlayer \| \| \|
|
||||
| \| EventStream \| \| \|
|
||||
| \| EventStreamChibi \| \| \|
|
||||
| \| File \| \| \|
|
||||
| \| FileDialog \| \| \|
|
||||
| \| FixedMaterial \| \| \|
|
||||
| \| Font \| \| \|
|
||||
| \| FuncRef \| \| \|
|
||||
| \| GDFunctionState \| \| \|
|
||||
| \| GDNativeClass \| \| \|
|
||||
| \| GDScript \| \| \|
|
||||
| \| Generic6DOFJoint \| \| \|
|
||||
| \| Geometry \| \| \|
|
||||
| \| GeometryInstance \| \| \|
|
||||
| \| Globals \| \| \|
|
||||
| \| GraphEdit \| StraToN \| Finished \| \| may need a tutorial. I'll
|
||||
think about it. \|
|
||||
| \| GraphNode \| StraToN \| Finished \| \| may need a tutorial. I'll
|
||||
think about it. \|
|
||||
| \| GridContainer \| \| \|
|
||||
| \| GridMap \| \| \|
|
||||
| \| GrooveJoint2D \| \| \|
|
||||
| \| HBoxContainer \| \| \|
|
||||
| \| HButtonArray \| \| \|
|
||||
| \| HScrollBar \| \| \|
|
||||
| \| HSeparator \| \| \|
|
||||
| \| HSlider \| \| \|
|
||||
| \| HSplitContainer \| \| \|
|
||||
| \| HTTPClient \| \| \|
|
||||
| \| HingeJoint \| \| \|
|
||||
| \| IP \| \| \|
|
||||
| \| IP_Unix \| \| \|
|
||||
| \| Image \| \| \|
|
||||
| \| ImageTexture \| \| \|
|
||||
| \| ImmediateGeometry \| \| \|
|
||||
| \| Input \| \| \|
|
||||
| \| InputDefault \| \| \|
|
||||
| \| InputEvent \| \| \|
|
||||
| \| InputEventAction \| \| \|
|
||||
| \| InputEventJoyButton \| \| \|
|
||||
| \| InputEventJoyMotion \| \| \|
|
||||
| \| InputEventKey \| \| \|
|
||||
| \| InputEventMouseButton \| \| \|
|
||||
| \| InputEventMouseMotion \| \| \|
|
||||
| \| InputEventScreenDrag \| \| \|
|
||||
| \| InputEventScreenTouch \| \| \|
|
||||
| \| InputMap \| \| \|
|
||||
| \| IntArray \| \| \|
|
||||
| \| InterpolatedCamera \| \| \|
|
||||
| \| ItemList \| \| \|
|
||||
| \| Joint \| \| \|
|
||||
| \| Joint2D \| \| \|
|
||||
| \| KinematicBody \| \| \|
|
||||
| \| KinematicBody2D \| Ovnuniarchos \| Started \| 2015/11/23 \| \|
|
||||
| \| Label \| \| \|
|
||||
| \| LargeTexture \| \| \|
|
||||
| \| Light \| \| \|
|
||||
| \| Light2D \| \| \|
|
||||
| \| LightOccluder2D \| \| \|
|
||||
| \| LineEdit \| \| \|
|
||||
| \| LineShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| MainLoop \| \| \|
|
||||
| \| MarginContainer \| \| \|
|
||||
| \| Marshalls \| \| \|
|
||||
| \| Material \| \| \|
|
||||
| \| MaterialShader \| \| \|
|
||||
| \| MaterialShaderGraph \| \| \|
|
||||
| \| Matrix3 \| \| \|
|
||||
| \| Matrix32 \| \| \|
|
||||
| \| MenuButton \| \| \|
|
||||
| \| Mesh \| \| \|
|
||||
| \| MeshDataTool \| \| \|
|
||||
| \| MeshInstance \| \| \|
|
||||
| \| MeshLibrary \| \| \|
|
||||
| \| MultiMesh \| \| \|
|
||||
| \| MultiMeshInstance \| \| \|
|
||||
| \| Mutex \| \| \|
|
||||
| \| Navigation \| \| \|
|
||||
| \| Navigation2D \| \| \|
|
||||
| \| NavigationMesh \| \| \|
|
||||
| \| NavigationMeshInstance \| \| \|
|
||||
| \| NavigationPolygon \| \| \|
|
||||
| \| NavigationPolygonInstance \| \| \|
|
||||
| \| Nil \| \| \|
|
||||
| \| Node \| \| \|
|
||||
| \| Node2D \| \| \|
|
||||
| \| NodePath \| \| \|
|
||||
| \| OS \| \| \|
|
||||
| \| Object \| \| \|
|
||||
| \| OccluderPolygon2D \| \| \|
|
||||
| \| OmniLight \| \| \|
|
||||
| \| OptionButton \| \| \|
|
||||
| \| PCKPacker \| \| \|
|
||||
| \| PHashTranslation \| \| \|
|
||||
| \| PackedDataContainer \| \| \|
|
||||
| \| PackedDataContainerRef \| \| \|
|
||||
| \| PackedScene \| \| \|
|
||||
| \| PacketPeer \| \| \|
|
||||
| \| PacketPeerStream \| \| \|
|
||||
| \| PacketPeerUDP \| \| \|
|
||||
| \| Panel \| \| \|
|
||||
| \| PanelContainer \| \| \|
|
||||
| \| ParallaxBackground \| \| \|
|
||||
| \| ParallaxLayer \| \| \|
|
||||
| \| ParticleAttractor2D \| \| \|
|
||||
| \| Particles \| \| \|
|
||||
| \| Particles2D \| \| \|
|
||||
| \| Patch9Frame \| \| \|
|
||||
| \| Path \| Ovnuniarchos \| Finished \|
|
||||
| \| Path2D \| Ovnuniarchos \| Finished \|
|
||||
| \| PathFollow \| Ovnuniarchos \| Finished \|
|
||||
| \| PathFollow2D \| Ovnuniarchos \| Finished \|
|
||||
| \| PathRemap \| \| \|
|
||||
| \| Performance \| \| \|
|
||||
| \| Physics2DDirectBodyState \| \| \|
|
||||
| \| Physics2DDirectBodyStateSW \| \| \|
|
||||
| \| Physics2DDirectSpaceState \| \| \|
|
||||
| \| Physics2DServer \| \| \|
|
||||
| \| Physics2DServerSW \| \| \|
|
||||
| \| Physics2DShapeQueryParameters \| \| \|
|
||||
| \| Physics2DShapeQueryResult \| \| \|
|
||||
| \| Physics2DTestMotionResult \| \| \|
|
||||
| \| PhysicsBody \| \| \|
|
||||
| \| PhysicsBody2D \| Ovnuniarchos \| Finished \| 2015/12/22 \| \|
|
||||
| \| PhysicsDirectBodyState \| \| \|
|
||||
| \| PhysicsDirectBodyStateSW \| \| \|
|
||||
| \| PhysicsDirectSpaceState \| \| \|
|
||||
| \| PhysicsServer \| \| \|
|
||||
| \| PhysicsServerSW \| \| \|
|
||||
| \| PhysicsShapeQueryParameters \| \| \|
|
||||
| \| PhysicsShapeQueryResult \| \| \|
|
||||
| \| PinJoint \| \| \|
|
||||
| \| PinJoint2D \| \| \|
|
||||
| \| Plane \| \| \|
|
||||
| \| PlaneShape \| \| \|
|
||||
| \| Polygon2D \| \| \|
|
||||
| \| PolygonPathFinder \| \| \|
|
||||
| \| Popup \| \| \|
|
||||
| \| PopupDialog \| \| \|
|
||||
| \| PopupMenu \| \| \|
|
||||
| \| PopupPanel \| \| \|
|
||||
| \| Portal \| \| \|
|
||||
| \| Position2D \| \| \|
|
||||
| \| Position3D \| \| \|
|
||||
| \| ProgressBar \| \| \|
|
||||
| \| ProximityGroup \| \| \|
|
||||
| \| Quad \| \| \|
|
||||
| \| Quat \| \| \|
|
||||
| \| RID \| \| \|
|
||||
| \| Range \| \| \|
|
||||
| \| RawArray \| \| \|
|
||||
| \| RayCast \| \| \|
|
||||
| \| RayCast2D \| eska \| Started \| 2015-10-16 \|
|
||||
| \| RayShape \| \| \|
|
||||
| \| RayShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| RealArray \| \| \|
|
||||
| \| Rect2 \| bojidar_bg \| Finished \|
|
||||
| \| RectangleShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| Reference \| \| \|
|
||||
| \| ReferenceFrame \| \| \|
|
||||
| \| RegEx \| Ovnuniarchos \| Finished \| 2015-11-03 \|
|
||||
| \| RemoteTransform2D \| eska \| Started \| 2015-10-16 \|
|
||||
| \| RenderTargetTexture \| \| \|
|
||||
| \| Resource \| \| \|
|
||||
| \| ResourceImportMetadata \| \| \|
|
||||
| \| ResourceInteractiveLoader \| \| \|
|
||||
| \| ResourceLoader \| \| \|
|
||||
| \| ResourcePreloader \| \| \|
|
||||
| \| ResourceSaver \| \| \|
|
||||
| \| RichTextLabel \| \| \|
|
||||
| \| RigidBody \| \| \|
|
||||
| \| RigidBody2D \| Ovnuniarchos \| Started \| 2015/11/23 \| \|
|
||||
| \| Room \| \| \|
|
||||
| \| RoomBounds \| \| \|
|
||||
| \| Sample \| Akien \| Finished \|
|
||||
| \| SampleLibrary \| Akien \| Finished \|
|
||||
| \| SamplePlayer \| Akien \| Finished \|
|
||||
| \| SamplePlayer2D \| Akien \| Finished \|
|
||||
| \| SceneTree \| \| \|
|
||||
| \| Script \| \| \|
|
||||
| \| ScrollBar \| \| \|
|
||||
| \| ScrollContainer \| \| \|
|
||||
| \| SegmentShape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| Semaphore \| \| \|
|
||||
| \| Separator \| \| \|
|
||||
| \| Shader \| \| \|
|
||||
| \| ShaderGraph \| \| \|
|
||||
| \| ShaderMaterial \| \| \|
|
||||
| \| Shape \| \| \|
|
||||
| \| Shape2D \| Ovnuniarchos \| Finished \| \|
|
||||
| \| Skeleton \| \| \|
|
||||
| \| Slider \| \| \|
|
||||
| \| SliderJoint \| \| \|
|
||||
| \| SoundPlayer2D \| Akien \| Not started \|
|
||||
| \| SoundRoomParams \| Akien \| Not started \|
|
||||
| \| Spatial \| Akien \| Not started \|
|
||||
| \| SpatialPlayer \| Akien \| Not started \|
|
||||
| \| SpatialSamplePlayer \| Akien \| Not started \|
|
||||
| \| SpatialSound2DServer \| Akien \| Not started \|
|
||||
| \| SpatialSound2DServerSW \| Akien \| Not started \|
|
||||
| \| SpatialSoundServer \| Akien \| Not started \|
|
||||
| \| SpatialSoundServerSW \| Akien \| Not started \|
|
||||
| \| SpatialStreamPlayer \| Akien \| Not started \|
|
||||
| \| SphereShape \| \| \|
|
||||
| \| SpinBox \| \| \|
|
||||
| \| SplitContainer \| \| \|
|
||||
| \| SpotLight \| \| \|
|
||||
| \| Sprite \| \| \|
|
||||
| \| Sprite3D \| \| \|
|
||||
| \| SpriteBase3D \| \| \|
|
||||
| \| SpriteFrames \| \| \|
|
||||
| \| StaticBody \| \| \|
|
||||
| \| StaticBody2D \| Ovnuniarchos \| Started \| 2015/11/23 \| \|
|
||||
| \| StreamPeer \| \| \|
|
||||
| \| StreamPeerSSL \| \| \|
|
||||
| \| StreamPeerTCP \| \| \|
|
||||
| \| StreamPlayer \| \| \|
|
||||
| \| String \| \| \|
|
||||
| \| StringArray \| \| \|
|
||||
| \| StyleBox \| \| \|
|
||||
| \| StyleBoxEmpty \| \| \|
|
||||
| \| StyleBoxFlat \| \| \|
|
||||
| \| StyleBoxImageMask \| \| \|
|
||||
| \| StyleBoxTexture \| \| \|
|
||||
| \| SurfaceTool \| \| \|
|
||||
| \| TCP_Server \| \| \|
|
||||
| \| TabContainer \| \| \|
|
||||
| \| Tabs \| \| \|
|
||||
| \| TestCube \| \| \|
|
||||
| \| TextEdit \| \| \|
|
||||
| \| Texture \| \| \|
|
||||
| \| TextureButton \| \| \|
|
||||
| \| TextureFrame \| \| \|
|
||||
| \| TextureProgress \| \| \|
|
||||
| \| Theme \| \| \|
|
||||
| \| Thread \| \| \|
|
||||
| \| TileMap \| Akien \| Finished \|
|
||||
| \| TileSet \| Akien \| Finished \|
|
||||
| \| Timer \| Akien \| Finished \|
|
||||
| \| ToolButton \| \| \|
|
||||
| \| TouchScreenButton \| \| \|
|
||||
| \| Transform \| \| \|
|
||||
| \| Translation \| \| \|
|
||||
| \| TranslationServer \| \| \|
|
||||
| \| Tree \| \| \|
|
||||
| \| TreeItem \| \| \|
|
||||
| \| Tween \| \| \|
|
||||
| \| UndoRedo \| \| \|
|
||||
| \| VBoxContainer \| \| \|
|
||||
| \| VButtonArray \| \| \|
|
||||
| \| VScrollBar \| \| \|
|
||||
| \| VSeparator \| \| \|
|
||||
| \| VSlider \| \| \|
|
||||
| \| VSplitContainer \| \| \|
|
||||
| \| Vector2 \| bojidar_bg \| Finished \|
|
||||
| \| Vector2Array \| bojidar_bg \| Finished \|
|
||||
| \| Vector3 \| bojidar_bg \| Finished \|
|
||||
| \| Vector3Array \| bojidar_bg \| Finished \|
|
||||
| \| VehicleBody \| \| \|
|
||||
| \| VehicleWheel \| \| \|
|
||||
| \| VideoPlayer \| \| \|
|
||||
| \| VideoStream \| \| \|
|
||||
| \| Viewport \| \| \|
|
||||
| \| ViewportSprite \| \| \|
|
||||
| \| VisibilityEnabler \| \| \|
|
||||
| \| VisibilityEnabler2D \| \| \|
|
||||
| \| VisibilityNotifier \| \| \|
|
||||
| \| VisibilityNotifier2D \| \| \|
|
||||
| \| VisualInstance \| \| \|
|
||||
| \| VisualServer \| \| \|
|
||||
| \| WeakRef \| \| \|
|
||||
| \| WindowDialog \| \| \|
|
||||
| \| World \| \| \|
|
||||
| \| World2D \| \| \|
|
||||
| \| WorldEnvironment \| \| \|
|
||||
| \| XMLParser \| \| \|
|
||||
| \| YSort \| eska \| Started \| 2015-10-16 \|
|
||||
| \| bool \| \| \|
|
||||
| \| float \| \| \|
|
||||
| \| int \| \| \|
|
||||
- @GDScript
|
||||
- @Global Scope
|
||||
- AABB - bojidar_bg - Finished -
|
||||
- AcceptDialog
|
||||
- AnimatedSprite
|
||||
- AnimatedSprite3D
|
||||
- Animation
|
||||
- AnimationPlayer
|
||||
- AnimationTreePlayer
|
||||
- Area
|
||||
- Area2D - Ovnuniarchos - Finished - 2015/12/22
|
||||
- Array - vnen - Started - 10/10/2015 -
|
||||
- AtlasTexture
|
||||
- AudioServer - Akien - Finished -
|
||||
- AudioServerSW - Akien - Finished -
|
||||
- AudioStream - Akien - Finished -
|
||||
- AudioStreamMPC - Akien - Finished -
|
||||
- AudioStreamOGGVorbis - Akien - Finished -
|
||||
- AudioStreamPlayback - Akien - Finished -
|
||||
- AudioStreamSpeex - Akien - Finished -
|
||||
- BackBufferCopy
|
||||
- BakedLight
|
||||
- BakedLightInstance
|
||||
- BakedLightSampler
|
||||
- BaseButton
|
||||
- BitMap
|
||||
- BoneAttachment
|
||||
- BoxContainer
|
||||
- BoxShape
|
||||
- Button
|
||||
- ButtonArray
|
||||
- ButtonGroup
|
||||
- Camera
|
||||
- Camera2D
|
||||
- CanvasItem
|
||||
- CanvasItemMaterial
|
||||
- CanvasItemShader
|
||||
- CanvasItemShaderGraph
|
||||
- CanvasLayer
|
||||
- CanvasModulate
|
||||
- CapsuleShape
|
||||
- CapsuleShape2D - Ovnuniarchos - Finished
|
||||
- CenterContainer
|
||||
- CheckBox
|
||||
- CheckButton
|
||||
- CircleShape2D - Ovnuniarchos - Finished
|
||||
- CollisionObject
|
||||
- CollisionObject2D - Ovnuniarchos - Finished - 2015/12/22
|
||||
- CollisionPolygon -
|
||||
- CollisionPolygon2D - Ovnuniarchos - Finished
|
||||
- CollisionShape
|
||||
- CollisionShape2D - Ovnuniarchos - Finished
|
||||
- Color
|
||||
- ColorArray
|
||||
- ColorPicker
|
||||
- ColorPickerButton
|
||||
- ColorRamp
|
||||
- ConcavePolygonShape
|
||||
- ConcavePolygonShape2D - Ovnuniarchos - Finished
|
||||
- ConeTwistJoint
|
||||
- ConfigFile
|
||||
- ConfirmationDialog
|
||||
- Container
|
||||
- Control
|
||||
- ConvexPolygonShape
|
||||
- ConvexPolygonShape2D - Ovnuniarchos - Finished
|
||||
- CubeMap
|
||||
- Curve2D - Ovnuniarchos - Finished -
|
||||
- Curve3D - Ovnuniarchos - Finished -
|
||||
- DampedSpringJoint2D
|
||||
- Dictionary
|
||||
- DirectionalLight
|
||||
- Directory - vnen - Started - 11/10/2015 -
|
||||
- EditorFileDialog
|
||||
- EditorImportPlugin
|
||||
- EditorPlugin
|
||||
- EditorScenePostImport
|
||||
- EditorScript
|
||||
- Environment
|
||||
- EventPlayer
|
||||
- EventStream
|
||||
- EventStreamChibi
|
||||
- File
|
||||
- FileDialog
|
||||
- FixedMaterial
|
||||
- Font
|
||||
- FuncRef
|
||||
- GDFunctionState
|
||||
- GDNativeClass
|
||||
- GDScript
|
||||
- Generic6DOFJoint
|
||||
- Geometry
|
||||
- GeometryInstance
|
||||
- Globals
|
||||
- GraphEdit - StraToN - Finished may need a tutorial. I'll
|
||||
think about it. -
|
||||
- GraphNode - StraToN - Finished may need a tutorial. I'll
|
||||
think about it. -
|
||||
- GridContainer
|
||||
- GridMap
|
||||
- GrooveJoint2D
|
||||
- HBoxContainer
|
||||
- HButtonArray
|
||||
- HScrollBar
|
||||
- HSeparator
|
||||
- HSlider
|
||||
- HSplitContainer
|
||||
- HTTPClient
|
||||
- HingeJoint
|
||||
- IP
|
||||
- IP_Unix
|
||||
- Image
|
||||
- ImageTexture
|
||||
- ImmediateGeometry
|
||||
- Input
|
||||
- InputDefault
|
||||
- InputEvent
|
||||
- InputEventAction
|
||||
- InputEventJoyButton
|
||||
- InputEventJoyMotion
|
||||
- InputEventKey
|
||||
- InputEventMouseButton
|
||||
- InputEventMouseMotion
|
||||
- InputEventScreenDrag
|
||||
- InputEventScreenTouch
|
||||
- InputMap
|
||||
- IntArray
|
||||
- InterpolatedCamera
|
||||
- ItemList
|
||||
- Joint
|
||||
- Joint2D
|
||||
- KinematicBody
|
||||
- KinematicBody2D - Ovnuniarchos - Started - 2015/11/23
|
||||
- Label
|
||||
- LargeTexture
|
||||
- Light
|
||||
- Light2D
|
||||
- LightOccluder2D
|
||||
- LineEdit
|
||||
- LineShape2D - Ovnuniarchos - Finished
|
||||
- MainLoop
|
||||
- MarginContainer
|
||||
- Marshalls
|
||||
- Material
|
||||
- MaterialShader
|
||||
- MaterialShaderGraph
|
||||
- Matrix3
|
||||
- Matrix32
|
||||
- MenuButton
|
||||
- Mesh
|
||||
- MeshDataTool
|
||||
- MeshInstance
|
||||
- MeshLibrary
|
||||
- MultiMesh
|
||||
- MultiMeshInstance
|
||||
- Mutex
|
||||
- Navigation
|
||||
- Navigation2D
|
||||
- NavigationMesh
|
||||
- NavigationMeshInstance
|
||||
- NavigationPolygon
|
||||
- NavigationPolygonInstance
|
||||
- Nil
|
||||
- Node
|
||||
- Node2D
|
||||
- NodePath
|
||||
- OS
|
||||
- Object
|
||||
- OccluderPolygon2D
|
||||
- OmniLight
|
||||
- OptionButton
|
||||
- PCKPacker
|
||||
- PHashTranslation
|
||||
- PackedDataContainer
|
||||
- PackedDataContainerRef
|
||||
- PackedScene
|
||||
- PacketPeer
|
||||
- PacketPeerStream
|
||||
- PacketPeerUDP
|
||||
- Panel
|
||||
- PanelContainer
|
||||
- ParallaxBackground
|
||||
- ParallaxLayer
|
||||
- ParticleAttractor2D
|
||||
- Particles
|
||||
- Particles2D
|
||||
- Patch9Frame
|
||||
- Path - Ovnuniarchos - Finished -
|
||||
- Path2D - Ovnuniarchos - Finished -
|
||||
- PathFollow - Ovnuniarchos - Finished -
|
||||
- PathFollow2D - Ovnuniarchos - Finished -
|
||||
- PathRemap
|
||||
- Performance
|
||||
- Physics2DDirectBodyState
|
||||
- Physics2DDirectBodyStateSW
|
||||
- Physics2DDirectSpaceState
|
||||
- Physics2DServer
|
||||
- Physics2DServerSW
|
||||
- Physics2DShapeQueryParameters
|
||||
- Physics2DShapeQueryResult
|
||||
- Physics2DTestMotionResult
|
||||
- PhysicsBody
|
||||
- PhysicsBody2D - Ovnuniarchos - Finished - 2015/12/22
|
||||
- PhysicsDirectBodyState
|
||||
- PhysicsDirectBodyStateSW
|
||||
- PhysicsDirectSpaceState
|
||||
- PhysicsServer
|
||||
- PhysicsServerSW
|
||||
- PhysicsShapeQueryParameters
|
||||
- PhysicsShapeQueryResult
|
||||
- PinJoint
|
||||
- PinJoint2D
|
||||
- Plane
|
||||
- PlaneShape
|
||||
- Polygon2D
|
||||
- PolygonPathFinder
|
||||
- Popup
|
||||
- PopupDialog
|
||||
- PopupMenu
|
||||
- PopupPanel
|
||||
- Portal
|
||||
- Position2D
|
||||
- Position3D
|
||||
- ProgressBar
|
||||
- ProximityGroup
|
||||
- Quad
|
||||
- Quat
|
||||
- RID
|
||||
- Range
|
||||
- RawArray
|
||||
- RayCast
|
||||
- RayCast2D - eska - Started - 2015-10-16 -
|
||||
- RayShape
|
||||
- RayShape2D - Ovnuniarchos - Finished
|
||||
- RealArray
|
||||
- Rect2 - bojidar_bg - Finished -
|
||||
- RectangleShape2D - Ovnuniarchos - Finished
|
||||
- Reference
|
||||
- ReferenceFrame
|
||||
- RegEx - Ovnuniarchos - Finished - 2015-11-03 -
|
||||
- RemoteTransform2D - eska - Started - 2015-10-16 -
|
||||
- RenderTargetTexture
|
||||
- Resource
|
||||
- ResourceImportMetadata
|
||||
- ResourceInteractiveLoader
|
||||
- ResourceLoader
|
||||
- ResourcePreloader
|
||||
- ResourceSaver
|
||||
- RichTextLabel
|
||||
- RigidBody
|
||||
- RigidBody2D - Ovnuniarchos - Started - 2015/11/23
|
||||
- Room
|
||||
- RoomBounds
|
||||
- Sample - Akien - Finished -
|
||||
- SampleLibrary - Akien - Finished -
|
||||
- SamplePlayer - Akien - Finished -
|
||||
- SamplePlayer2D - Akien - Finished -
|
||||
- SceneTree
|
||||
- Script
|
||||
- ScrollBar
|
||||
- ScrollContainer
|
||||
- SegmentShape2D - Ovnuniarchos - Finished
|
||||
- Semaphore
|
||||
- Separator
|
||||
- Shader
|
||||
- ShaderGraph
|
||||
- ShaderMaterial
|
||||
- Shape
|
||||
- Shape2D - Ovnuniarchos - Finished
|
||||
- Skeleton
|
||||
- Slider
|
||||
- SliderJoint
|
||||
- SoundPlayer2D - Akien - Not started -
|
||||
- SoundRoomParams - Akien - Not started -
|
||||
- Spatial - Akien - Not started -
|
||||
- SpatialPlayer - Akien - Not started -
|
||||
- SpatialSamplePlayer - Akien - Not started -
|
||||
- SpatialSound2DServer - Akien - Not started -
|
||||
- SpatialSound2DServerSW - Akien - Not started -
|
||||
- SpatialSoundServer - Akien - Not started -
|
||||
- SpatialSoundServerSW - Akien - Not started -
|
||||
- SpatialStreamPlayer - Akien - Not started -
|
||||
- SphereShape
|
||||
- SpinBox
|
||||
- SplitContainer
|
||||
- SpotLight
|
||||
- Sprite
|
||||
- Sprite3D
|
||||
- SpriteBase3D
|
||||
- SpriteFrames
|
||||
- StaticBody
|
||||
- StaticBody2D - Ovnuniarchos - Started - 2015/11/23
|
||||
- StreamPeer
|
||||
- StreamPeerSSL
|
||||
- StreamPeerTCP
|
||||
- StreamPlayer
|
||||
- String
|
||||
- StringArray
|
||||
- StyleBox
|
||||
- StyleBoxEmpty
|
||||
- StyleBoxFlat
|
||||
- StyleBoxImageMask
|
||||
- StyleBoxTexture
|
||||
- SurfaceTool
|
||||
- TCP_Server
|
||||
- TabContainer
|
||||
- Tabs
|
||||
- TestCube
|
||||
- TextEdit
|
||||
- Texture
|
||||
- TextureButton
|
||||
- TextureFrame
|
||||
- TextureProgress
|
||||
- Theme
|
||||
- Thread
|
||||
- TileMap - Akien - Finished -
|
||||
- TileSet - Akien - Finished -
|
||||
- Timer - Akien - Finished -
|
||||
- ToolButton
|
||||
- TouchScreenButton
|
||||
- Transform
|
||||
- Translation
|
||||
- TranslationServer
|
||||
- Tree
|
||||
- TreeItem
|
||||
- Tween
|
||||
- UndoRedo
|
||||
- VBoxContainer
|
||||
- VButtonArray
|
||||
- VScrollBar
|
||||
- VSeparator
|
||||
- VSlider
|
||||
- VSplitContainer
|
||||
- Vector2 - bojidar_bg - Finished -
|
||||
- Vector2Array - bojidar_bg - Finished -
|
||||
- Vector3 - bojidar_bg - Finished -
|
||||
- Vector3Array - bojidar_bg - Finished -
|
||||
- VehicleBody
|
||||
- VehicleWheel
|
||||
- VideoPlayer
|
||||
- VideoStream
|
||||
- Viewport
|
||||
- ViewportSprite
|
||||
- VisibilityEnabler
|
||||
- VisibilityEnabler2D
|
||||
- VisibilityNotifier
|
||||
- VisibilityNotifier2D
|
||||
- VisualInstance
|
||||
- VisualServer
|
||||
- WeakRef
|
||||
- WindowDialog
|
||||
- World
|
||||
- World2D
|
||||
- WorldEnvironment
|
||||
- XMLParser
|
||||
- YSort - eska - Started - 2015-10-16 -
|
||||
- bool
|
||||
- float
|
||||
- int
|
||||
|
||||
@@ -387,9 +387,8 @@ Every name string is is padded to 4 bytes.
|
||||
| 4 | 4 | Integer | val&0x7FFFFFFF = elements, val&0x80000000 = shared (bool) |
|
||||
+----------+-------+-----------+---------------------------------------------------------------------+
|
||||
|
||||
| Then what follows is, for amount of "elements", pairs of key and
|
||||
value, one after the other, using
|
||||
| this same format.
|
||||
Then what follows is, for amount of "elements", pairs of key and value,
|
||||
one after the other, using this same format.
|
||||
|
||||
21: array
|
||||
~~~~~~~~~
|
||||
@@ -400,9 +399,8 @@ Every name string is is padded to 4 bytes.
|
||||
| 4 | 4 | Integer | val&0x7FFFFFFF = elements, val&0x80000000 = shared (bool) |
|
||||
+----------+-------+-----------+---------------------------------------------------------------------+
|
||||
|
||||
| Then what follows is, for amount of "elements", values one after the
|
||||
other, using
|
||||
| this same format.
|
||||
Then what follows is, for amount of "elements", values one after the
|
||||
other, using this same format.
|
||||
|
||||
22: byte array
|
||||
~~~~~~~~~~~~~~
|
||||
@@ -420,18 +418,24 @@ The array data is padded to 4 bytes.
|
||||
23: int array
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
| Offset \| Len \| Type \| Description
|
||||
| -- \| -- \| -- \| --
|
||||
| 4\|4\|Integer\| Array Length (Integers)
|
||||
| 8..8+length\*4\|4\|Integer\| 32 Bits Signed Integer
|
||||
+------------------+-------+-----------+---------------------------+
|
||||
| Offset | Len | Type | Description |
|
||||
+==================+=======+===========+===========================+
|
||||
| 4 | 4 | Integer | Array Length (Integers) |
|
||||
+------------------+-------+-----------+---------------------------+
|
||||
| 8..8+length\*4 | 4 | Integer | 32 Bits Signed Integer |
|
||||
+------------------+-------+-----------+---------------------------+
|
||||
|
||||
24: float array
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
| Offset \| Len \| Type \| Description
|
||||
| -- \| -- \| -- \| --
|
||||
| 4\|4\|Integer\| Array Length (Floats)
|
||||
| 8..8+length\*4\|4\|Integer\| 32 Bits IEE 754 Float
|
||||
+------------------+-------+-----------+---------------------------+
|
||||
| Offset | Len | Type | Description |
|
||||
+==================+=======+===========+===========================+
|
||||
| 4 | 4 |Integer | Array Length (Floats) |
|
||||
+------------------+-------+-----------+---------------------------+
|
||||
| 8..8+length\*4 | 4 |Integer | 32 Bits IEE 754 Float |
|
||||
+------------------+-------+-----------+---------------------------+
|
||||
|
||||
25: string array
|
||||
~~~~~~~~~~~~~~~~
|
||||
@@ -457,36 +461,44 @@ Every string is is padded to 4 bytes.
|
||||
26: vector2 array
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
+-------------------------------------------+-------+-----------+----------------+
|
||||
| Offset | Len | Type | Description |
|
||||
+===========================================+=======+===========+================+
|
||||
| 4 | 4 | Integer | Array Length |
|
||||
+-------------------------------------------+-------+-----------+----------------+
|
||||
| 8..8+length_8\|4\|Float\| X Coordinate | 4 | Float | Y Coordinate |
|
||||
| 8..12+length_8 | | | |
|
||||
+-------------------------------------------+-------+-----------+----------------+
|
||||
+-------------------+-------+-----------+----------------+
|
||||
| Offset | Len | Type | Description |
|
||||
+===================+=======+===========+================+
|
||||
| 4 | 4 | Integer | Array Length |
|
||||
+-------------------+-------+-----------+----------------+
|
||||
| 8..8+length\*8 | 4 | Float | X Coordinate |
|
||||
+-------------------+-------+-----------+----------------+
|
||||
| 8..12+length\*8 | 4 | Float | Y Coordinate |
|
||||
+-------------------+-------+-----------+----------------+
|
||||
|
||||
27: vector3 array
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
| Offset \| Len \| Type \| Description
|
||||
| -- \| -- \| -- \| --
|
||||
| 4\|4\|Integer\| Array Length
|
||||
| 8..8+length_12\|4\|Float\| X Coordinate
|
||||
| 8..12+length_12\|4\|Float\| Y Coordinate
|
||||
| 8..16+length\*12\|4\|Float\| Z Coordinate
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| Offset | Len | Type | Description |
|
||||
+====================+=======+===========+================+
|
||||
| 4 | 4 | Integer | Array Length |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| 8..8+length\*12 | 4 | Float | X Coordinate |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| 8..12+length\*12 | 4 | Float | Y Coordinate |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| 8..16+length\*12 | 4 | Float | Z Coordinate |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
|
||||
28: color array
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
+--------------------------------------------+-------+-----------+----------------+
|
||||
| Offset | Len | Type | Description |
|
||||
+============================================+=======+===========+================+
|
||||
| 4 | 4 | Integer | Array Length |
|
||||
+--------------------------------------------+-------+-----------+----------------+
|
||||
| 8..8+length_16\|4\|Float\| Red (0..1) | 4 | Float | Green (0..1) |
|
||||
| 8..12+length_16 | | | |
|
||||
+--------------------------------------------+-------+-----------+----------------+
|
||||
| 8..16+length_16\|4\|Float\| Blue (0..1) | 4 | Float | Alpha (0..1) |
|
||||
| 8..20+length_16 | | | |
|
||||
+--------------------------------------------+-------+-----------+----------------+
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| Offset | Len | Type | Description |
|
||||
+====================+=======+===========+================+
|
||||
| 4 | 4 | Integer | Array Length |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| 8..8+length\*16 | 4 | Float | Red (0..1) |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| 8..12+length\*16 | 4 | Float | Green (0..1) |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| 8..16+length\*16 | 4 | Float | Blue (0..1) |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
| 8..20+length\*16 | 4 | Float | Alpha (0..1) |
|
||||
+--------------------+-------+-----------+----------------+
|
||||
|
||||
+252
-169
@@ -57,9 +57,8 @@ Data Types
|
||||
Syntax
|
||||
~~~~~~
|
||||
|
||||
| The syntax is similar to C, with statements ending in ; , and comments
|
||||
as // and /\* \*/.
|
||||
| Example:
|
||||
The syntax is similar to C, with statements ending with ``;`` and comments
|
||||
as ``//`` and ``/* */``. Example:
|
||||
|
||||
::
|
||||
|
||||
@@ -88,27 +87,27 @@ less if the element has more subindices, for example:
|
||||
|
||||
::
|
||||
|
||||
vec3 a = vec3( 1, vec2(2,3) );
|
||||
vec3 b = vec3( a );
|
||||
vec3 c = vec3( vec2(2,3), 1 );
|
||||
vec4 d = vec4( a, 5 );
|
||||
mat3 m = mat3( a,b,c );
|
||||
vec3 a = vec3(1,vec2(2,3));
|
||||
vec3 b = vec3(a);
|
||||
vec3 c = vec3(vec2(2,3),1);
|
||||
vec4 d = vec4(a,5);
|
||||
mat3 m = mat3(a,b,c);
|
||||
|
||||
Conditionals
|
||||
~~~~~~~~~~~~
|
||||
|
||||
For now, only the "if" conditional is supported. Example:
|
||||
For now, only the ``if`` conditional is supported. Example:
|
||||
|
||||
::
|
||||
|
||||
if (a < b) {
|
||||
c = b;
|
||||
c = b;
|
||||
}
|
||||
|
||||
Uniforms
|
||||
~~~~~~~~
|
||||
|
||||
A variable can be declared as uniform. In this case, it's value will
|
||||
A variable can be declared as uniform. In this case, its value will
|
||||
come from outside the shader (it will be the responsibility of the
|
||||
material or whatever using the shader to provide it).
|
||||
|
||||
@@ -127,65 +126,91 @@ uniforms or other shader variables.
|
||||
|
||||
::
|
||||
|
||||
vec3 addtwo( vec3 a, vec3 b) {
|
||||
|
||||
vec3 addtwo(vec3 a, vec3 b) {
|
||||
return a+b;
|
||||
}
|
||||
|
||||
vec3 c = addtwo(vec3(1,1,1)+vec3(2,2,2));
|
||||
vec3 c = addtwo(vec3(1,1,1) + vec3(2,2,2));
|
||||
|
||||
Built-In Functions
|
||||
Built-in functions
|
||||
------------------
|
||||
|
||||
Several Built-in functions are provided for convenience, listed as
|
||||
Several built-in functions are provided for convenience, listed as
|
||||
follows:
|
||||
|
||||
| \|\ *. Function \|*. Description \|
|
||||
| \| float *sin*\ ( float ) \| Sine \|
|
||||
| \| float *cos*\ ( float ) \| Cosine \|
|
||||
| \| float *tan*\ ( float ) \| Tangent \|
|
||||
| \| float *asin*\ ( float ) \| arc-Sine \|
|
||||
| \| float *acos*\ ( float ) \| arc-Cosine \|
|
||||
| \| float *atan*\ ( float ) \| arc-Tangent \|
|
||||
| \| vec_type *pow*\ ( vec_type, float ) \| Power \|
|
||||
| \| vec_type *pow*\ ( vec_type, vec_type ) \| Power (Vec. Exponent)
|
||||
\|
|
||||
| \| vec_type *exp*\ ( vec_type ) \| Base-e Exponential \|
|
||||
| \| vec_type *log*\ ( vec_type ) \| Natural Logarithm \|
|
||||
| \| vec_type *sqrt*\ ( vec_type ) \| Square Root \|
|
||||
| \| vec_type *abs*\ ( vec_type ) \| Absolute \|
|
||||
| \| vec_type *sign*\ ( vec_type ) \| Sign \|
|
||||
| \| vec_type *floor*\ ( vec_type ) \| Floor \|
|
||||
| \| vec_type *trunc*\ ( vec_type ) \| Trunc \|
|
||||
| \| vec_type *ceil*\ ( vec_type ) \| Ceiling \|
|
||||
| \| vec_type *fract*\ ( vec_type ) \| Fractional \|
|
||||
| \| vec_type *mod*\ ( vec_type,vec_type ) \| Remainder \|
|
||||
| \| vec_type *min*\ ( vec_type,vec_type ) \| Minimum \|
|
||||
| \| vec_type *min*\ ( vec_type,vec_type ) \| Maximum \|
|
||||
| \| vec_type *clamp*\ ( vec_type value,vec_type min, vec_type max )
|
||||
\| Clamp to Min-Max \|
|
||||
| \| vec_type *mix*\ ( vec_type a,vec_type b, float c ) \| Linear
|
||||
Interpolate \|
|
||||
| \| vec_type *mix*\ ( vec_type a,vec_type b, vec_type c ) \| Linear
|
||||
Interpolate (Vector Coef.)\|
|
||||
| \| vec_type *step*\ ( vec_type a,vec_type b) \| \` a[i] < b[i] ?
|
||||
0.0 : 1.0\`\|
|
||||
| \| vec_type *smoothstep*\ ( vec_type a,vec_type b,vec_type c) \|
|
||||
\|
|
||||
| \| float *length*\ ( vec_type ) \| Vector Length \|
|
||||
| \| float *distance*\ ( vec_type, vec_type ) \| Distance between
|
||||
vector. \|
|
||||
| \| float *dot*\ ( vec_type, vec_type ) \| Dot Product \|
|
||||
| \| vec3 *dot*\ ( vec3, vec3 ) \| Cross Product \|
|
||||
| \| vec_type *normalize*\ ( vec_type ) \| Normalize to unit length \|
|
||||
| \| vec3 *reflect*\ ( vec3, vec3 ) \| Reflect \|
|
||||
| \| color *tex*\ ( texture, vec2 ) \| Read from a texture in
|
||||
noormalized coords \|
|
||||
| \| color *texcube*\ ( texture, vec3 ) \| Read from a cubemap \|
|
||||
| \| color *texscreen*\ ( vec2 ) \| Read from screen (generates a copy)
|
||||
\|
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| Function | Description |
|
||||
+=======================================================================+=============================================+
|
||||
| float *sin* ( float ) | Sine |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| float *cos* ( float ) | Cosine |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| float *tan* ( float ) | Tangent |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| float *asin* ( float ) | arc-Sine |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| float *acos* ( float ) | arc-Cosine |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| float *atan* ( float ) | arc-Tangent |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *pow* ( vec\_type, float ) | Power |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *pow* ( vec\_type, vec\_type ) | Power (Vec. Exponent) |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *exp* ( vec\_type ) | Base-e Exponential |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *log* ( vec\_type ) | Natural Logarithm |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *sqrt* ( vec\_type ) | Square Root |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *abs* ( vec\_type ) | Absolute |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *sign* ( vec\_type ) | Sign |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *floor* ( vec\_type ) | Floor |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *trunc* ( vec\_type ) | Trunc |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *ceil* ( vec\_type ) | Ceiling |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *fract* ( vec\_type ) | Fractional |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *mod* ( vec\_type,vec\_type ) | Remainder |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *min* ( vec\_type,vec\_type ) | Minimum |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *min* ( vec\_type,vec\_type ) | Maximum |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *clamp* ( vec\_type value,vec\_type min, vec\_type max ) | Clamp to Min-Max |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *mix* ( vec\_type a,vec\_type b, float c ) | Linear Interpolate |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *mix* ( vec\_type a,vec\_type b, vec\_type c ) | Linear Interpolate (Vector Coef.) |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *step* ( vec\_type a,vec\_type b) | \` a[i] < b[i] ? 0.0 : 1.0\` |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *smoothstep* ( vec\_type a,vec\_type b,vec\_type c) | |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| float *length* ( vec\_type ) | Vector Length |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| float *distance* ( vec\_type, vec\_type ) | Distance between vector. |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| float *dot* ( vec\_type, vec\_type ) | Dot Product |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec3 *dot* ( vec3, vec3 ) | Cross Product |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec\_type *normalize* ( vec\_type ) | Normalize to unit length |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| vec3 *reflect* ( vec3, vec3 ) | Reflect |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| color *tex* ( texture, vec2 ) | Read from a texture in noormalized coords |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| color *texcube* ( texture, vec3 ) | Read from a cubemap |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
| color *texscreen* ( vec2 ) | Read from screen (generates a copy) |
|
||||
+-----------------------------------------------------------------------+---------------------------------------------+
|
||||
|
||||
Built-In Variables
|
||||
Built-in variables
|
||||
------------------
|
||||
|
||||
Depending on the shader type, several built-in variables are available,
|
||||
@@ -194,28 +219,51 @@ listed as follows:
|
||||
Material - VertexShader
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
| \|\ *. Variable \|*. Description \|
|
||||
| \| const vec3 *SRC_VERTEX* \| Model-Space Vertex \|
|
||||
| \| const vec3 *SRC_NORMAL* \| Model-Space Normal \|
|
||||
| \| const vec3 *SRC_TANGENT* \| Model-Space Tangent \|
|
||||
| \| const float *SRC_BINORMALF* \| Direction to Compute Binormal \|
|
||||
| \| vec3 *VERTEX* \| View-Space Vertex \|
|
||||
| \| vec3 *NORMAL* \| View-Space Normal \|
|
||||
| \| vec3 *TANGENT* \| View-Space Tangent \|
|
||||
| \| vec3 *BINORMAL* \| View-Space Binormal \|
|
||||
| \| vec2 *UV* \| UV \|
|
||||
| \| vec2 *UV2* \| UV2 \|
|
||||
| \| color *COLOR* \| Vertex Color \|
|
||||
| \| out vec4 *VAR1* \| Varying 1 Output \|
|
||||
| \| out vec4 *VAR2* \| Varying 2 Output \|
|
||||
| \| out float *SPEC_EXP* \| Specular Exponent (for Vertex Lighting) \|
|
||||
| \| out float *POINT_SIZE* \| Point Size (for points) \|
|
||||
| \| const mat4 *WORLD_MATRIX* \| Object World Matrix \|
|
||||
| \| const mat4 *INV_CAMERA_MATRIX* \| Inverse Camera Matrix \|
|
||||
| \| const mat4 *PROJECTION_MATRIX* \| Projection Matrix \|
|
||||
| \| const mat4 *MODELVIEW_MATRIX* \| (InvCamera \* Projection) \|
|
||||
| \| const float *INSTANCE_ID* \| Instance ID (for multimesh)\|
|
||||
| \| const float *TIME* \| Time (in seconds) \|
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| Variable | Description |
|
||||
+====================================+===========================================+
|
||||
| const vec3 *SRC\_VERTEX* | Model-Space Vertex |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const vec3 *SRC\_NORMAL* | Model-Space Normal |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const vec3 *SRC\_TANGENT* | Model-Space Tangent |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const float *SRC\_BINORMALF* | Direction to Compute Binormal |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| vec3 *VERTEX* | View-Space Vertex |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| vec3 *NORMAL* | View-Space Normal |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| vec3 *TANGENT* | View-Space Tangent |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| vec3 *BINORMAL* | View-Space Binormal |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| vec2 *UV* | UV |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| vec2 *UV2* | UV2 |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| color *COLOR* | Vertex Color |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| out vec4 *VAR1* | Varying 1 Output |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| out vec4 *VAR2* | Varying 2 Output |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| out float *SPEC\_EXP* | Specular Exponent (for Vertex Lighting) |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| out float *POINT\_SIZE* | Point Size (for points) |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const mat4 *WORLD\_MATRIX* | Object World Matrix |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const mat4 *INV\_CAMERA\_MATRIX* | Inverse Camera Matrix |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const mat4 *PROJECTION\_MATRIX* | Projection Matrix |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const mat4 *MODELVIEW\_MATRIX* | (InvCamera \* Projection) |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const float *INSTANCE\_ID* | Instance ID (for multimesh) |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
| const float *TIME* | Time (in seconds) |
|
||||
+------------------------------------+-------------------------------------------+
|
||||
|
||||
Material - FragmentShader
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -235,7 +283,7 @@ Material - FragmentShader
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| const vec3 *NORMALMAP* | Alternative to NORMAL, use for normal texture output. |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| const vec3 *NORMALMAP_DEPTH* | Complementary to the above, allows changing depth of normalmap. |
|
||||
| const vec3 *NORMALMAP\_DEPTH* | Complementary to the above, allows changing depth of normalmap. |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| const vec2 *UV* | UV |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
@@ -247,25 +295,25 @@ Material - FragmentShader
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| const vec4 *VAR2* | Varying 2 |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| const vec2 *SCREEN_UV* | Screen Texture Coordinate (for using with texscreen) |
|
||||
| const vec2 *SCREEN\_UV* | Screen Texture Coordinate (for using with texscreen) |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| const float *TIME* | Time (in seconds) |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| const vec2 *POINT_COORD* | UV for point, when drawing point sprites. |
|
||||
| const vec2 *POINT\_COORD* | UV for point, when drawing point sprites. |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| out vec3 *DIFFUSE* | Diffuse Color |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| out vec4 *DIFFUSE_ALPHA* | Diffuse Color with Alpha (using this sends geometry to alpha pipeline) |
|
||||
| out vec4 *DIFFUSE\_ALPHA* | Diffuse Color with Alpha (using this sends geometry to alpha pipeline) |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| out vec3 *SPECULAR* | Specular Color |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| out vec3 *EMISSION* | Emission Color |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| out float *SPEC_EXP* | Specular Exponent (Fragment Version) |
|
||||
| out float *SPEC\_EXP* | Specular Exponent (Fragment Version) |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| out float *GLOW* | Glow |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
| out mat4 *INV_CAMERA_MATRIX* | Inverse camera matrix, can be used to obtain world coords (see example below). |
|
||||
| out mat4 *INV\_CAMERA\_MATRIX* | Inverse camera matrix, can be used to obtain world coords (see example below). |
|
||||
+----------------------------------+----------------------------------------------------------------------------------+
|
||||
|
||||
Material - LightShader
|
||||
@@ -276,23 +324,23 @@ Material - LightShader
|
||||
+================================+===============================+
|
||||
| const vec3 *NORMAL* | View-Space normal |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const vec3 *LIGHT_DIR* | View-Space Light Direction |
|
||||
| const vec3 *LIGHT\_DIR* | View-Space Light Direction |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const vec3 *EYE_VEC* | View-Space Eye-Point Vector |
|
||||
| const vec3 *EYE\_VEC* | View-Space Eye-Point Vector |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const vec3 *DIFFUSE* | Material Diffuse Color |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const vec3 *LIGHT_DIFFUSE* | Light Diffuse Color |
|
||||
| const vec3 *LIGHT\_DIFFUSE* | Light Diffuse Color |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const vec3 *SPECULAR* | Material Specular Color |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const vec3 *LIGHT_SPECULAR* | Light Specular Color |
|
||||
| const vec3 *LIGHT\_SPECULAR* | Light Specular Color |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const float *SPECULAR_EXP* | Specular Exponent |
|
||||
| const float *SPECULAR\_EXP* | Specular Exponent |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const vec1 *SHADE_PARAM* | Generic Shade Parameter |
|
||||
| const vec1 *SHADE\_PARAM* | Generic Shade Parameter |
|
||||
+--------------------------------+-------------------------------+
|
||||
| const vec2 *POINT_COORD* | Current UV for Point Sprite |
|
||||
| const vec2 *POINT\_COORD* | Current UV for Point Sprite |
|
||||
+--------------------------------+-------------------------------+
|
||||
| out vec2 *LIGHT* | Resulting Light |
|
||||
+--------------------------------+-------------------------------+
|
||||
@@ -302,70 +350,105 @@ Material - LightShader
|
||||
CanvasItem (2D) - VertexShader
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
| \|\ *. Variable \|*. Description \|
|
||||
| \| const vec2 *SRC_VERTEX* \| CanvasItem space vertex. \|
|
||||
| \| vec2 *UV* \| UV \|
|
||||
| \| out vec2 *VERTEX* \| Output LocalSpace vertex. \|
|
||||
| \| out vec2 *WORLD_VERTEX* \| Output WorldSpace vertex. (use this or
|
||||
the one above) \|
|
||||
| \| color *COLOR* \| Vertex Color \|
|
||||
| \| out vec4 *VAR1* \| Varying 1 Output \|
|
||||
| \| out vec4 *VAR2* \| Varying 2 Output \|
|
||||
| \| out float *POINT_SIZE* \| Point Size (for points) \|
|
||||
| \| const mat4 *WORLD_MATRIX* \| Object World Matrix \|
|
||||
| \| const mat4 *EXTRA_MATRIX* \| Extra (user supplied) matrix via
|
||||
:ref:`CanvasItem.draw_set_transform() <class_CanvasItem_draw_set_transform>`.
|
||||
Identity by default. \|
|
||||
| \| const mat4 *PROJECTION_MATRIX* \| Projection Matrix (model coords
|
||||
to screen).\|
|
||||
| \| const float *TIME* \| Time (in seconds) \|
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| Variable | Description |
|
||||
+===================================+============================================================================================+
|
||||
| const vec2 *SRC\_VERTEX* | CanvasItem space vertex. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| vec2 *UV* | UV |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| out vec2 *VERTEX* | Output LocalSpace vertex. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| out vec2 *WORLD\_VERTEX* | Output WorldSpace vertex. (use this or the one above) |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| color *COLOR* | Vertex Color |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| out vec4 *VAR1* | Varying 1 Output |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| out vec4 *VAR2* | Varying 2 Output |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| out float *POINT\_SIZE* | Point Size (for points) |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| const mat4 *WORLD\_MATRIX* | Object World Matrix |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| const mat4 *EXTRA\_MATRIX* | Extra (user supplied) matrix via CanvasItem.draw\_set\_transform(). Identity by default. |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| const mat4 *PROJECTION\_MATRIX* | Projection Matrix (model coords to screen). |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
| const float *TIME* | Time (in seconds) |
|
||||
+-----------------------------------+--------------------------------------------------------------------------------------------+
|
||||
|
||||
CanvasItem (2D) - FragmentShader
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
| \|\ *. Variable \|*. Description \|
|
||||
| \| const vec4 *SRC_COLOR* \| Vertex color \|
|
||||
| \| const vec4 *POSITION* \| Screen Position \|
|
||||
| \| vec2 *UV* \| UV \|
|
||||
| \| out color *COLOR* \| Output Color \|
|
||||
| \| out vec3 *NORMAL* \| Optional Normal (used for 2D Lighting) \|
|
||||
| \| out vec3 *NORMALMAP* \| Optional Normal in standard normalmap
|
||||
format (flipped y and Z from 0 to 1) \|
|
||||
| \| out float *NORMALMAP_DEPTH* \| Depth option for above normalmap
|
||||
output, default value is 1.0 \|
|
||||
| \| const texture *TEXTURE* \| Current texture in use for CanvasItem \|
|
||||
| \| const vec2 *TEXTURE_PIXEL_SIZE* \| Pixel size for current 2D
|
||||
texture \|
|
||||
| \| in vec4 *VAR1* \| Varying 1 Output \|
|
||||
| \| in vec4 *VAR2* \| Varying 2 Output \|
|
||||
| \| const vec2 *SCREEN_UV*\ \| Screen Texture Coordinate (for using
|
||||
with texscreen) \|
|
||||
| \| const vec2 *POINT_COORD* \| Current UV for Point Sprite \|
|
||||
| \| const float *TIME*\ \| Time (in seconds) \|
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| Variable | Description |
|
||||
+=====================================+==============================================================================+
|
||||
| const vec4 *SRC\_COLOR* | Vertex color |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| const vec4 *POSITION* | Screen Position |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| vec2 *UV* | UV |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| out color *COLOR* | Output Color |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| out vec3 *NORMAL* | Optional Normal (used for 2D Lighting) |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| out vec3 *NORMALMAP* | Optional Normal in standard normalmap format (flipped y and Z from 0 to 1) |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| out float *NORMALMAP\_DEPTH* | Depth option for above normalmap output, default value is 1.0 |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| const texture *TEXTURE* | Current texture in use for CanvasItem |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| const vec2 *TEXTURE\_PIXEL\_SIZE* | Pixel size for current 2D texture |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| in vec4 *VAR1* | Varying 1 Output |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| in vec4 *VAR2* | Varying 2 Output |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| const vec2 *SCREEN\_UV* | Screen Texture Coordinate (for using with texscreen) |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| const vec2 *POINT\_COORD* | Current UV for Point Sprite |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
| const float *TIME* | Time (in seconds) |
|
||||
+-------------------------------------+------------------------------------------------------------------------------+
|
||||
|
||||
CanvasItem (2D) - LightShader
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
| \|\ *. Variable \|*. Description \|
|
||||
| \| const vec4 *POSITION* \| Screen Position \|
|
||||
| \| in vec3 *NORMAL* \| Input Normal \|
|
||||
| \| in vec2 *UV* \| UV \|
|
||||
| \| in color *COLOR* \| Input Color \|
|
||||
| \| const texture *TEXTURE* \| Current texture in use for CanvasItem \|
|
||||
| \| const vec2 *TEXTURE_PIXEL_SIZE* \| Pixel size for current 2D
|
||||
texture \|
|
||||
| \| in vec4 *VAR1* \| Varying 1 Output \|
|
||||
| \| in vec4 *VAR2* \| Varying 2 Output \|
|
||||
| \| const vec2 *SCREEN_UV*\ \| Screen Texture Coordinate (for using
|
||||
with texscreen) \|
|
||||
| \| const vec2 *POINT_COORD* \| Current UV for Point Sprite \|
|
||||
| \| const float *TIME*\ \| Time (in seconds) \|
|
||||
| \| vec2 *LIGHT_VEC* \| Vector from light to fragment, can be modified
|
||||
to alter shadow computation. \|
|
||||
| \| const float *LIGHT_HEIGHT* \| Height of Light \|
|
||||
| \| const color *LIGHT_COLOR* \| Color of Light \|
|
||||
| \| out vec4 *LIGHT* \| Light Ouput (shader is ignored if this is not
|
||||
used) \|
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| Variable | Description |
|
||||
+=====================================+===============================================================================+
|
||||
| const vec4 *POSITION* | Screen Position |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| in vec3 *NORMAL* | Input Normal |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| in vec2 *UV* | UV |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| in color *COLOR* | Input Color |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| const texture *TEXTURE* | Current texture in use for CanvasItem |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| const vec2 *TEXTURE\_PIXEL\_SIZE* | Pixel size for current 2D texture |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| in vec4 *VAR1* | Varying 1 Output |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| in vec4 *VAR2* | Varying 2 Output |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| const vec2 *SCREEN\_UV* | Screen Texture Coordinate (for using with texscreen) |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| const vec2 *POINT\_COORD* | Current UV for Point Sprite |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| const float *TIME* | Time (in seconds) |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| vec2 *LIGHT\_VEC* | Vector from light to fragment, can be modified to alter shadow computation. |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| const float *LIGHT\_HEIGHT* | Height of Light |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| const color *LIGHT\_COLOR* | Color of Light |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
| out vec4 *LIGHT* | Light Ouput (shader is ignored if this is not used) |
|
||||
+-------------------------------------+-------------------------------------------------------------------------------+
|
||||
|
||||
Examples
|
||||
--------
|
||||
@@ -378,45 +461,45 @@ program:
|
||||
uniform color modulate;
|
||||
uniform texture source;
|
||||
|
||||
DIFFUSE = modulate.rgb * tex(source,UV).rgb;
|
||||
DIFFUSE = modulate.rgb * tex(source, UV).rgb;
|
||||
|
||||
Material that glows from red to white:
|
||||
|
||||
::
|
||||
|
||||
DIFFUSE = vec3(1,0,0) + vec(1,1,1)*mod(TIME,1.0);
|
||||
DIFFUSE = vec3(1,0,0) + vec(1,1,1) * mod(TIME, 1.0);
|
||||
|
||||
Standard Blinn Lighting Shader
|
||||
|
||||
::
|
||||
|
||||
float NdotL = max(0.0,dot( NORMAL, LIGHT_DIR ));
|
||||
float NdotL = max(0.0, dot(NORMAL, LIGHT_DIR));
|
||||
vec3 half_vec = normalize(LIGHT_DIR + EYE_VEC);
|
||||
float eye_light = max(dot(NORMAL, half_vec),0.0);
|
||||
float eye_light = max(dot(NORMAL, half_vec), 0.0);
|
||||
LIGHT = LIGHT_DIFFUSE + DIFFUSE + NdotL;
|
||||
if (NdotL > 0.0) {
|
||||
LIGHT+=LIGHT_SPECULAR + SPECULAR + pow( eye_light, SPECULAR_EXP );
|
||||
LIGHT += LIGHT_SPECULAR + SPECULAR + pow(eye_light, SPECULAR_EXP);
|
||||
};
|
||||
|
||||
Obtaining world-space normal and position in material fragment program:
|
||||
|
||||
::
|
||||
|
||||
//use reverse multiply because INV_CAMERA_MATRIX is world2cam
|
||||
// Use reverse multiply because INV_CAMERA_MATRIX is world2cam
|
||||
|
||||
vec3 world_normal = NORMAL * mat3(INV_CAMERA_MATRIX);
|
||||
vec3 world_pos = (VERTEX-INV_CAMERA_MATRIX.w.xyz) * mat3(INV_CAMERA_MATRIX);
|
||||
vec3 world_pos = (VERTEX - INV_CAMERA_MATRIX.w.xyz) * mat3(INV_CAMERA_MATRIX);
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
| \* **Do not** use DIFFUSE_ALPHA unless you really intend to use
|
||||
transparency. Transparent materials must be sorted by depth and slow
|
||||
down the rendering pipeline. For opaque materials, just use DIFFUSE.
|
||||
| \* **Do not** use DISCARD unless you really need it. Discard makes
|
||||
rendering slower, specially on mobile devices.
|
||||
| \* TIME may reset after a while (may last an hour or so), it's meant
|
||||
for effects that vary over time.
|
||||
| \* In general, every built-in variable not used results in less shader
|
||||
code generated, so writing a single giant shader with a lot of code
|
||||
and optional scenarios is often not a good idea.
|
||||
- **Do not** use DIFFUSE_ALPHA unless you really intend to use
|
||||
transparency. Transparent materials must be sorted by depth and slow
|
||||
down the rendering pipeline. For opaque materials, just use DIFFUSE.
|
||||
- **Do not** use DISCARD unless you really need it. Discard makes
|
||||
rendering slower, specially on mobile devices.
|
||||
- TIME may reset after a while (may last an hour or so), it's meant
|
||||
for effects that vary over time.
|
||||
- In general, every built-in variable not used results in less shader
|
||||
code generated, so writing a single giant shader with a lot of code
|
||||
and optional scenarios is often not a good idea.
|
||||
|
||||
@@ -32,11 +32,11 @@ but they can be created via code easily. For example:
|
||||
|
||||
::
|
||||
|
||||
#create a circle
|
||||
# Create a circle
|
||||
var c = CircleShape2D.new()
|
||||
c.set_radius(20)
|
||||
|
||||
#create a box
|
||||
# Create a box
|
||||
var b = RectangleShape2D.new()
|
||||
b.set_extents(Vector2(20,10))
|
||||
|
||||
@@ -48,21 +48,20 @@ functions like:
|
||||
|
||||
::
|
||||
|
||||
#check if there is a collision between two shapes, each with a transform
|
||||
if b.collide(b_xform,a,a_xform):
|
||||
print("OMG Collision!")
|
||||
# Check if there is a collision between two shapes, each with a transform
|
||||
if b.collide(b_xform, a, a_xform):
|
||||
print("OMG Collision!")
|
||||
|
||||
Godot will return correct collision and collision info from the
|
||||
different calls to the Shape2D api. Collision between all shapes and
|
||||
transforms can be done this way, or even obtaining contact information,
|
||||
motion casting, etc.
|
||||
|
||||
Transforming Shapes
|
||||
Transforming shapes
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
As seen before in the collide functions, 2D shapes in godot can be
|
||||
transformed by using a regular
|
||||
:ref:`Matrix32 <class_Matrix32>`
|
||||
transformed by using a regular :ref:`Matrix32 <class_Matrix32>`
|
||||
transform, meaning the can check collision while scaled, moved and
|
||||
rotated. The only limitation to this is that shapes with curved sections
|
||||
(such as circle and capsule) can only be scaled uniformly. This means
|
||||
@@ -73,14 +72,14 @@ scaled uniformly!
|
||||
|
||||
.. image:: /img/shape_rules.png
|
||||
|
||||
But Problems Begin
|
||||
------------------
|
||||
When problems begin
|
||||
-------------------
|
||||
|
||||
Even though this sounds good, reality is that collision detection alone
|
||||
is usually not enough in most scenarios. Many problems start arising as
|
||||
long as the development of the game is in progress:
|
||||
|
||||
Too Many Combinations!
|
||||
Too many combinations!
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Games have several dozens, hundreds, thousands! of objects that can
|
||||
@@ -91,14 +90,14 @@ against everything in two for loops like this:
|
||||
|
||||
for i in colliders:
|
||||
for j in colliders:
|
||||
if (i.collides(j)):
|
||||
do_collision_code()
|
||||
if (i.collides(j)):
|
||||
do_collision_code()
|
||||
|
||||
But this scales really bad. Let's imagine there are only 100 objects in
|
||||
the game. This means that 100\*100=10000 collisions will need to be
|
||||
tested each frame. This is a lot!
|
||||
|
||||
Visual Aid
|
||||
Visual aid
|
||||
~~~~~~~~~~
|
||||
|
||||
Most of the time, creating a shape via code is not enough. We need to
|
||||
@@ -106,7 +105,7 @@ visually place it over a sprite, draw a collision polygon, etc. It is
|
||||
obvious that we need nodes to create the proper collision shapes in a
|
||||
scene.
|
||||
|
||||
Collision Resolution
|
||||
Collision resolution
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Imagine we solved the collision issue, we can tell easily and quickly
|
||||
@@ -114,28 +113,25 @@ which shapes overlap. If many of them are dynamic objects that move
|
||||
around, or move according to newtonian physics, solving a collision of
|
||||
multiple objects can be really difficult code-wise.
|
||||
|
||||
Introducing.. Godot's Physics Engine!
|
||||
-------------------------------------
|
||||
Introducing... Godot's physics engine!
|
||||
--------------------------------------
|
||||
|
||||
To solve all these problems, Godot has a physics and collision engine
|
||||
that is well integrated into the scene system, yet it allows different
|
||||
levels and layers of functionality. The built-in physics engine can be
|
||||
used for:
|
||||
|
||||
- Simple Collision Detection: See
|
||||
:ref:`Shape2D <class_Shape2D>`
|
||||
- Simple Collision Detection: See :ref:`Shape2D <class_Shape2D>`
|
||||
API.
|
||||
- Scene Kinematics: Handle shapes, collisions, broadphase, etc as
|
||||
nodes. See
|
||||
:ref:`Area2D <class_Area2D>`.
|
||||
nodes. See :ref:`Area2D <class_Area2D>`.
|
||||
- Scene Physics: Rigid bodies and constraints as nodes. See
|
||||
:ref:`RigidBody2D <class_RigidBody2D>`,
|
||||
and the joint nodes.
|
||||
:ref:`RigidBody2D <class_RigidBody2D>`, and the joint nodes.
|
||||
|
||||
Units of Measure
|
||||
Units of measure
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
It is often a problem when integrating a 2D Physics engine to a game
|
||||
It is often a problem when integrating a 2D physics engine to a game
|
||||
that such engines are optimized to work using meters as unit of measure.
|
||||
Godot uses a built-in custom 2D physics engine that is designed to
|
||||
function properly in pixels, so all units and default values used for
|
||||
@@ -177,8 +173,9 @@ CollisionShape2D
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
This node is a helper node. It must be created as a direct children of a
|
||||
CollisionObject2D derived node
|
||||
:ref:`Area2D <class_Area2D>`.
|
||||
CollisionObject2D derived node: :ref:`Area2D <class_Area2D>`,
|
||||
:ref:`StaticBody2D <class_StaticBody2D>`, :ref:`KinematicBody2D <class_KinematicBody2D>`,
|
||||
:ref:`RigidBody2D <class_RigidBody2D>`.
|
||||
|
||||
By itself it does nothing, but when created as a child of the above
|
||||
mentioned nodes, it adds collision shapes to them. Any amount of
|
||||
@@ -187,7 +184,7 @@ simply have more collision shapes. When added/deleted/moved/edited, it
|
||||
updates the list of shapes in the parent node.
|
||||
|
||||
At run time, though, this node does not exist (can't be accessed with
|
||||
get_node() ), since it's only meant to be an editor helper. To access
|
||||
``get_node()``), since it's only meant to be an editor helper. To access
|
||||
the shapes created at runtime, use the CollisionObject2D API directly.
|
||||
|
||||
As an example, here's the scene from the platformer, containing an
|
||||
@@ -238,8 +235,7 @@ such a character or a rigidbody, these are the same as a staticbody).
|
||||
They have however, two main uses:
|
||||
|
||||
- **Simulated Motion**: When these bodies are moved manually, either
|
||||
from code or from an
|
||||
:ref:`AnimationPlayer <class_AnimationPlayer>`
|
||||
from code or from an :ref:`AnimationPlayer <class_AnimationPlayer>`
|
||||
(with process mode set to fixed!), the physics will automatically
|
||||
compute an estimate of their linear and angular velocity. This makes
|
||||
them very useful for moving platforms or other
|
||||
@@ -249,16 +245,15 @@ They have however, two main uses:
|
||||
- **Kinematic Characters**: KinematicBody2D also has an api for moving
|
||||
objects (the move() function) while performing collision tests. This
|
||||
makes them really useful to implement characters that collide against
|
||||
a world, but that don't require advanced physics. A special
|
||||
:ref:`doc_kinematic_character_2d`.
|
||||
a world, but that don't require advanced physics. There is a tutorial
|
||||
about :ref:`doc_kinematic_character_2d`.
|
||||
|
||||
RigidBody2D
|
||||
~~~~~~~~~~~
|
||||
|
||||
This type of body simulates newtonian physics. It has mass, friction,
|
||||
bounce, and the 0,0 coordinates simulates the center of mass. When real
|
||||
physics are needed,
|
||||
:ref:`RigidBody2D <class_RigidBody2D>`
|
||||
physics are needed, :ref:`RigidBody2D <class_RigidBody2D>`
|
||||
is the node to use. The motion of this body is affected by gravity
|
||||
and/or other bodies.
|
||||
|
||||
@@ -286,14 +281,13 @@ function must be overridden:
|
||||
::
|
||||
|
||||
func _integrate_forces(state):
|
||||
[use state to change the object]
|
||||
[use state to change the object]
|
||||
|
||||
The \`state\` parameter is of type
|
||||
:ref:`Physics2DDirectBodyState <class_Physics2DDirectBodyState>`.
|
||||
The "state" parameter is of type :ref:`Physics2DDirectBodyState <class_Physics2DDirectBodyState>`.
|
||||
Please do not use this object (state) outside the callback as it will
|
||||
result in an error.
|
||||
|
||||
Contact Reporting
|
||||
Contact reporting
|
||||
-----------------
|
||||
|
||||
In general, RigidBody2D will not keep track of the contacts, because
|
||||
@@ -326,22 +320,24 @@ signals emitted by this node:
|
||||
|
||||
::
|
||||
|
||||
#Simple, high level notification
|
||||
# Simple, high level notification
|
||||
body_enter(body:PhysicsBody2D)
|
||||
body_exit(body:PhysicsBody2D)
|
||||
area_enter(area:Area2D)
|
||||
area_exit(body:Area2D)
|
||||
|
||||
#Low level shape-based notification
|
||||
#notifies which shape specifically in both the body and area are in contact
|
||||
# Low level shape-based notification
|
||||
# Notifies which shape specifically in both the body and area are in contact
|
||||
body_enter_shape(body_id:int,body:PhysicsBody2D,body_shape_index:int,area_shape_index:idx)
|
||||
body_exit_shape(body_id:int,body:PhysicsBody2D,body_shape_index:int,area_shape_index:idx)
|
||||
area_enter_shape(area_id:int,area:Area2D,area_shape_index:int,self_shape_index:idx)
|
||||
area_exit_shape(area_id:int,area:Area2D,area_shape_index:int,self_shape_index:idx)
|
||||
|
||||
Areas also by default receive mouse/touchscreen input, providing a lower-level way than controls to implement this kind of input in a game. Bodies support this by it's disabled by default.
|
||||
Areas also by default receive mouse/touchscreen input, providing a
|
||||
lower-level way than controls to implement this kind of input in a game.
|
||||
Bodies support this by it's disabled by default.
|
||||
|
||||
Physics Global Variables
|
||||
Physics global variables
|
||||
------------------------
|
||||
|
||||
A few global variables can be tweaked in the project settings for
|
||||
@@ -361,7 +357,7 @@ small portion of the screen, it might be necessary to shrink that value
|
||||
few large colliders that span a huge map (of several screens of size),
|
||||
increasing that value a bit might help save resources.
|
||||
|
||||
Fixed Process Callback
|
||||
Fixed process callback
|
||||
----------------------
|
||||
|
||||
The physics engine may spawn multiple threads to improve performance, so
|
||||
@@ -374,7 +370,7 @@ but it's called once per physics frame (by default 60 times per second).
|
||||
During this time, the physics engine is in *synchronization* state and
|
||||
can be accessed directly and without delays.
|
||||
|
||||
To enable a fixed process callback, use the set_fixed_process()
|
||||
To enable a fixed process callback, use the ``set_fixed_process()``
|
||||
function, example:
|
||||
|
||||
::
|
||||
@@ -382,12 +378,12 @@ function, example:
|
||||
extends KinematicBody2D
|
||||
|
||||
func _fixed_process(delta):
|
||||
move( direction * delta )
|
||||
move(direction * delta)
|
||||
|
||||
func _ready():
|
||||
set_fixed_process(true)
|
||||
set_fixed_process(true)
|
||||
|
||||
Casting Rays and Motion Queries
|
||||
Casting rays and motion queries
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
It is very often desired to "explore" the world around from our code.
|
||||
@@ -400,8 +396,8 @@ server must be used directly. For this, the
|
||||
:ref:`Physics2DDirectspaceState <class_Physics2DDirectspaceState>`
|
||||
class must be used. To obtain it, the following steps must be taken:
|
||||
|
||||
1. It must be used inside the _fixed_process() callback, or at
|
||||
_integrate_forces()
|
||||
1. It must be used inside the ``_fixed_process()`` callback, or at
|
||||
``_integrate_forces()``
|
||||
|
||||
2. The 2D RIDs for the space and physics server must be obtained.
|
||||
|
||||
@@ -411,11 +407,11 @@ The following code should work:
|
||||
|
||||
func _fixed_process(delta):
|
||||
var space = get_world_2d().get_space()
|
||||
var space_state = Physics2DServer.space_get_direct_state( space )
|
||||
var space_state = Physics2DServer.space_get_direct_state(space)
|
||||
|
||||
Enjoy doing space queries!
|
||||
|
||||
Contact Reporting
|
||||
Contact reporting
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Remember that not every combination of two bodies can "report" contacts.
|
||||
@@ -427,20 +423,16 @@ and with other areas. The following table should make it more visual:
|
||||
In case of overlap, who receives collision information?
|
||||
-------------------------------------------------------
|
||||
|
||||
\|\ *. Type \|*. RigidBody \|\ *. CharacterBody \|*. KinematicBody
|
||||
\|\ *. StaticBody \|*. Area \|
|
||||
|
||||
\| **RigidBody** \| Both \| Both \| Both \| Rigidbody \| Area \|
|
||||
|
||||
\| **CharacterBody** \| Both \| Both \| Both \| CharacterBody \| Area
|
||||
\|
|
||||
|
||||
\| **KinematicBody** \| Both \| Both \| None \| None \| Area \|
|
||||
|
||||
\| **StaticBody** \| RigidBody \| CharacterBody \| None \| None \|
|
||||
None \|
|
||||
|
||||
\| **Area** \| Area \| Area \| Area \| None \| Both \|
|
||||
|
||||
|
||||
|
||||
+-------------------+-------------+-----------------+-----------------+---------------+--------+
|
||||
| **Type** | *RigidBody* | *CharacterBody* | *KinematicBody* | *StaticBody* | *Area* |
|
||||
+===================+=============+=================+=================+===============+========+
|
||||
| **RigidBody** | Both | Both | Both | Rigidbody | Area |
|
||||
+-------------------+-------------+-----------------+-----------------+---------------+--------+
|
||||
| **CharacterBody** | Both | Both | Both | CharacterBody | Area |
|
||||
+-------------------+-------------+-----------------+-----------------+---------------+--------+
|
||||
| **KinematicBody** | Both | Both | None | None | Area |
|
||||
+-------------------+-------------+-----------------+-----------------+---------------+--------+
|
||||
| **StaticBody** | RigidBody | CharacterBody | None | None | None |
|
||||
+-------------------+-------------+-----------------+-----------------+---------------+--------+
|
||||
| **Area** | Area | Area | Area | None | Both |
|
||||
+-------------------+-------------+-----------------+-----------------+---------------+--------+
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.. _doc_viewport_and_canvas_transforms:
|
||||
|
||||
Viewport & Canvas Transforms
|
||||
Viewport & canvas transforms
|
||||
============================
|
||||
|
||||
Introduction
|
||||
@@ -11,46 +11,43 @@ users, and explains all the 2D transforms going on for nodes from the
|
||||
moment they draw their content locally to the time they are drawn into
|
||||
the screen.
|
||||
|
||||
Canvas Transform
|
||||
Canvas transform
|
||||
----------------
|
||||
|
||||
As mentioned in the previous tutorial :ref:`doc_canvas_layers`, every
|
||||
CanvasItem node (remember that Node2D and Control based nodes use
|
||||
CanvasItem as their common root) will reside in a *Canvas Layer*. Every
|
||||
canvas layer has a transform (translation, rotation, scale, etc) that
|
||||
can be accessed as a
|
||||
:ref:`Matrix32 <class_Matrix32>`.
|
||||
canvas layer has a transform (translation, rotation, scale, etc.) that
|
||||
can be accessed as a :ref:`Matrix32 <class_Matrix32>`.
|
||||
|
||||
By default, nodes are drawn in Layer 0, in the built-in canvas. To put
|
||||
nodes in a different layer, a
|
||||
:ref:`CanvasLayer <class_CanvasLayer>`
|
||||
nodes in a different layer, a :ref:`CanvasLayer <class_CanvasLayer>`
|
||||
node can be used. This was covered in the previous tutorial anyway, just
|
||||
refreshing.
|
||||
|
||||
Global Canvas Transform
|
||||
Global canvas transform
|
||||
-----------------------
|
||||
|
||||
Viewports also have a Global Canvas transform (also a
|
||||
:ref:`Matrix32 <class_Matrix32>`
|
||||
). This is the master transform and affects all individual *Canvas
|
||||
Layer* transforms. Generally this transform is not of much use, but is
|
||||
used in the CanvasItem Editor in Godot's editor.
|
||||
:ref:`Matrix32 <class_Matrix32>`). This is the master transform and
|
||||
affects all individual *Canvas Layer* transforms. Generally this
|
||||
transform is not of much use, but is used in the CanvasItem Editor
|
||||
in Godot's editor.
|
||||
|
||||
Stretch Transform
|
||||
Stretch transform
|
||||
-----------------
|
||||
|
||||
Finally, viewports have a *Stretch Transform*, which is used when
|
||||
resizing or stretching the screen. This transform is used internally by
|
||||
the :ref:`doc_multiple_resolutions`, but can also be requested to the viewport.
|
||||
|
||||
Input events received in the
|
||||
:ref:`Node._input_event() <class_Node__input_event>`
|
||||
Input events received in the :ref:`Node._input_event() <class_Node__input_event>`
|
||||
callback are multiplied by this transform, but lack the ones above. To
|
||||
convert InputEvent coordinates to local CanvasItem coordinates, the
|
||||
:ref:`CanvasItem.make_input_local() <class_CanvasItem_make_input_local>`
|
||||
function was added for convenience.
|
||||
|
||||
Transform Order
|
||||
Transform order
|
||||
---------------
|
||||
|
||||
For a coordinate in CanvasItem local properties to become an actual
|
||||
@@ -58,24 +55,20 @@ screen coordinate, the following chain of transforms must be applied:
|
||||
|
||||
.. image:: /img/viewport_transforms2.png
|
||||
|
||||
Transform Functions
|
||||
Transform functions
|
||||
-------------------
|
||||
|
||||
Obtaining each transform can be achieved with the following functions:
|
||||
|
||||
\|Type: \| Transform\|
|
||||
|
||||
\|CanvasItem \|
|
||||
:ref:`CanvasItem.get_global_transform() <class_CanvasItem_get_global_transform>`
|
||||
\|
|
||||
|
||||
\|CanvasLayer\|
|
||||
:ref:`CanvasItem.get_canvas_transform() <class_CanvasItem_get_canvas_transform>`
|
||||
\|
|
||||
|
||||
\|CanvasLayer+GlobalCanvas+Stretch \|
|
||||
:ref:`CanvasItem.get_viewport_transform() <class_CanvasItem_get_viewport_transform>`
|
||||
\|
|
||||
+----------------------------------+--------------------------------------------------------------------------------------+
|
||||
| Type | Transform |
|
||||
+==================================+======================================================================================+
|
||||
| CanvasItem | :ref:`CanvasItem.get_global_transform() <class_CanvasItem_get_global_transform>` |
|
||||
+----------------------------------+--------------------------------------------------------------------------------------+
|
||||
| CanvasLayer | :ref:`CanvasItem.get_canvas_transform() <class_CanvasItem_get_canvas_transform>` |
|
||||
+----------------------------------+--------------------------------------------------------------------------------------+
|
||||
| CanvasLayer+GlobalCanvas+Stretch | :ref:`CanvasItem.get_viewport_transform() <class_CanvasItem_get_viewport_transform>` |
|
||||
+----------------------------------+--------------------------------------------------------------------------------------+
|
||||
|
||||
Finally then, to convert a CanvasItem local coordinates to screen
|
||||
coordinates, just multiply in the following order:
|
||||
@@ -86,10 +79,10 @@ coordinates, just multiply in the following order:
|
||||
|
||||
Keep in mind, however, that it is generally not desired to work with
|
||||
screen coordinates. The recommended approach is to simply work in Canvas
|
||||
coordinates (CanvasItem.get_global_transform()), to allow automatic
|
||||
coordinates (``CanvasItem.get_global_transform()``), to allow automatic
|
||||
screen resolution resizing to work properly.
|
||||
|
||||
Feeding Custom Input Events
|
||||
Feeding custom input events
|
||||
---------------------------
|
||||
|
||||
It is often desired to feed custom input events to the scene tree. With
|
||||
@@ -100,10 +93,7 @@ way:
|
||||
|
||||
var local_pos = Vector2(10,20) # local to Control/Node2D
|
||||
var ie = InputEvent()
|
||||
ie.type=InputEvent.MOUSE_BUTTON
|
||||
ie.button_index=1 #left click
|
||||
ie.pos = get_viewport_transform() + ( get_global_transform() + local_pos )
|
||||
ie.type = InputEvent.MOUSE_BUTTON
|
||||
ie.button_index = BUTTON_LEFT
|
||||
ie.pos = get_viewport_transform() + (get_global_transform() + local_pos)
|
||||
get_tree().input_event(ie)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user