aboutsummaryrefslogtreecommitdiff
path: root/scene/3d/immediate_geometry.h
diff options
context:
space:
mode:
authorJuan Linietsky2014-05-29 10:56:39 -0300
committerJuan Linietsky2014-05-29 10:56:39 -0300
commit6f0b4678e26c04abfc88c0226c803e78a108de98 (patch)
tree51b99b2ece75e5782c0b14c97bb6913c48e7f363 /scene/3d/immediate_geometry.h
parentd9adf2627a70ab37408aca9ae4140c6280dfe6df (diff)
downloadgodot-6f0b4678e26c04abfc88c0226c803e78a108de98.tar.gz
godot-6f0b4678e26c04abfc88c0226c803e78a108de98.tar.zst
godot-6f0b4678e26c04abfc88c0226c803e78a108de98.zip
More 3D Improvements
-=-=-=-=-=-=-=-=-=-= -Sprite3D and AnimatedSprite3D support. -Opaque pre-pass works, is compatible with shadows -Improved shadow map rendering (can differentiate between plain opaque and opaque with shaders/discard/etc) -Added option to use alpha discard in FixedMaterial -Improved Glow FX, many more options (three modes, Additive, Screen and SoftLight), strength and scale -Ability for Background (image or cubemap) to send to glow buffer -Dumb Deploy of clients now actually works in Android -Many Many rendering fixes, 3D is much more usable now.
Diffstat (limited to 'scene/3d/immediate_geometry.h')
-rw-r--r--scene/3d/immediate_geometry.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/scene/3d/immediate_geometry.h b/scene/3d/immediate_geometry.h
new file mode 100644
index 000000000..2db81134c
--- /dev/null
+++ b/scene/3d/immediate_geometry.h
@@ -0,0 +1,41 @@
+#ifndef IMMEDIATE_GEOMETRY_H
+#define IMMEDIATE_GEOMETRY_H
+
+#include "scene/3d/visual_instance.h"
+#include "scene/resources/mesh.h"
+
+class ImmediateGeometry : public GeometryInstance {
+
+ OBJ_TYPE(ImmediateGeometry,GeometryInstance);
+
+
+ RID im;
+ List<Ref<Texture> > cached_textures;
+ bool empty;
+ AABB aabb;
+protected:
+
+ static void _bind_methods();
+public:
+
+
+ void begin(Mesh::PrimitiveType p_primitive,const Ref<Texture>& p_texture);
+ void set_normal(const Vector3& p_normal);
+ void set_tangent(const Plane& p_tangent);
+ void set_color(const Color& p_color);
+ void set_uv(const Vector2& tex_uv);
+ void set_uv2(const Vector2& tex_uv);
+
+ void add_vertex(const Vector3& p_vertex);
+
+ void end();
+ void clear();
+
+ virtual AABB get_aabb() const;
+ virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
+
+ ImmediateGeometry();
+ ~ImmediateGeometry();
+};
+
+#endif // IMMEDIATE_GEOMETRY_H