RTC_GEOMETRY_TYPE_POINT(3embree3)
π NAME π
okay bestie, listen up β this is the page for the Embree Ray Tracing Kernels 3 manual, section 3, and it's all about three point-geometry glow-ups:
RTC_GEOMETRY_TYPE_SPHERE_POINTβ point geometry spheres, no cap π«ΆRTC_GEOMETRY_TYPE_DISC_POINTβ point geometry but with ray-oriented discsRTC_GEOMETRY_TYPE_ORIENTED_DISC_POINTβ point geometry with normal-oriented discs
β¨ SYNOPSIS β¨
#include <embree3/rtcore.h>
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_SPHERE_POINT);
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_DISC_POINT);
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT);
π DESCRIPTION π
so basically, points with per vertex radii are supported, and you get to pick between three whole geometric representations: spheres, ray-oriented discs, and normal-oriented discs. it's giving choose your fighter π
you make these point geometries by passing RTC_GEOMETRY_TYPE_SPHERE_POINT, RTC_GEOMETRY_TYPE_DISC_POINT, or RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT into the rtcNewGeometry function. the point vertices can be specified through a vertex buffer (RTC_BUFFER_TYPE_VERTEX). and for the normal oriented discs, you also have to specify a normal buffer (RTC_BUFFER_TYPE_NORMAL) on top of that β it's not optional, bestie, it's required π
want the deets on how to actually set buffers? go look at rtcSetGeometryBuffer and rtcSetSharedGeometryBuffer. they've got you.
πΈ the buffers, explained πΈ
the vertex buffer stores each control vertex as a single precision position and radius, laid out in (x, y, z, r) order in memory, in RTC_FORMAT_FLOAT4 format. and the number of vertices? it's inferred from the size of this buffer β the buffer tells you how many there are, you don't tell it. iconic behaviour honestly β¨
similarly, the normal buffer stores a single precision normal per control vertex, in x, y, z order and RTC_FORMAT_FLOAT3 format.
π the three modes, ranked π
RTC_GEOMETRY_TYPE_SPHERE_POINTβ in this mode, a real geometric surface is rendered for the curve. yes it's more expensive π but it lets you do closeup views, and honestly? worth it. main character energy.RTC_GEOMETRY_TYPE_DISC_POINTβ this flat mode is the fast mode, designed to render distant points. in this mode the point gets rendered as a ray facing disc. speedrun strats fr fr π₯RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINTβ this mode is designed as a midpoint, geometrically speaking, between ray facing discs and spheres. in this mode the point is rendered as a normal oriented disc. it's the in-between girlie π¦
π hit info, aka what you actually get back π
for all point types, only the hit distance and the geometry normal come back as hit information. u and v? both set to zero. periodt. that's the whole menu.
β±οΈ multi-segment motion blur β±οΈ
for multi-segment motion blur, the number of time steps must be specified first using the rtcSetGeometryTimeStepCount call β first, bestie, don't skip this step π«Ά
then you can set a vertex buffer for each time step using different buffer slots. and important: all of these buffers must have the same stride and size. no mixing, no matching, no chaos π
also go check the tutorial [Points] for an example of how to create and use point geometries β it's basically the group chat receipts for this whole page.
π EXIT STATUS π
on failure, NULL is returned and an error code gets set. you can query that error code using rtcGetDeviceError. so if things go sideways, that's your 911 call.
π₯ SEE ALSO π₯
[rtcNewGeometry]
and that's the whole page, bestie!! this was the RTC_GEOME...PE_*_POINT(3) page from the Embree Ray Tracing Kernels 3 manual, section 3 β go forth and render some gorgeous points, you absolute icon πβ¨π
π¦ where this page comes from
- epel 9: embree 3.13.5-4.el9 Β· Apache-2.0
- fedora 43: embree3 3.13.5-9.fc41 Β· Apache-2.0
- fedora 44: embree3 3.13.5-16.fc44 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms