diff options
| author | Juan Linietsky | 2014-05-29 10:56:39 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2014-05-29 10:56:39 -0300 |
| commit | 6f0b4678e26c04abfc88c0226c803e78a108de98 (patch) | |
| tree | 51b99b2ece75e5782c0b14c97bb6913c48e7f363 /scene/3d/immediate_geometry.h | |
| parent | d9adf2627a70ab37408aca9ae4140c6280dfe6df (diff) | |
| download | godot-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.h | 41 |
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 |
