Skip to content

paradoxum-games/ceiveimgizmo

 
 

Repository files navigation

Ceive ImGizmo

A performant immediate and retained mode gizmo library.

Ceive was made in mind for both performance, immedate mode and retained mode, after I looked at the lack of good gizmo librarys on roblox I set out to create one that was not only more performant than other librarys. But was also easier to work with and had more capabilities.

(The name Cieve ImGizmo is derived from Perceive and Immediate Mode Gizmo)

Demo

The demo place can be found here: https://www.roblox.com/games/13812842210/Gizmos-Demo
And the rbxm + rbxl files can be found in the releases.

Shapes

Boxes with or without triangles
image
image

Wedges with or without triangles
image
image

Spheres
image

Cylinders
image

Capsules
image

Custom Import OBJ Meshes
image

Usage

The demo place provides an example for every single shape including the custom mesh.
But heres a basic example on how you could create a cylinder

Gizmo.PushProperty("Color3", Color3.new(0.184314, 0.184314, 1))
Gizmo.Cylinder:Draw(CFrame.new(0, 10, 0) * CFrame.Angles(0, math.rad(25), 0), 2, 4, 20) -- Location: CFrame, Radius: number, Length: number, Subdivisions: number

Subdivisions just define how many segments should make up a shape it's the same as blender when you define how many vertices should make up a cylinder for example.

How it works

Ceive ImGizmo is both an immediate and retained gizmo library, immediate mode means that instead of creating objects and them persisting over multiple frames, they are instead deleted after each render cycle and ready to be used next frame. This means you dont have to keep track of objects and destroy them. All of it is handled at the end of each frame (On heartbeat)

This means setup is so easy you can have gizmos visualising look directions, nav meshes, attack regions and hitboxes in just minutes.

Performance

Ceive uses a WireframeHandleAdornment, This means it is incredibly fast, being able to show 100k lines at 20fps you never have to worry about performance. All of the lines are rendered using 2 Adornments, one thats AlwaysOnTop and one that isn't. You can be rest assured that there will be negligable performance impact when your gizmos are enabled.

Internally the retained mode just calls back to the immediate mode functions, so there is no performance difference between them.
If you'd wish to enable / disable all gizmos then you can call Gizmo.SetEnabled(value: boolean) this will disable all rendering and clear any Rays / Adornments.

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%