virtualx-engine/scene/3d/immediate_geometry.h
Juan Linietsky 6f0b4678e2 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.
2014-05-29 10:56:39 -03:00

41 lines
886 B
C++

#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