AGX Dynamics 2.42.1.1
Loading...
Searching...
No Matches
RaytraceGgxAndOrenNayarMaterial.h
Go to the documentation of this file.
1/*
2Copyright 2007-2025. Algoryx Simulation AB.
3
4All AGX source code, intellectual property, documentation, sample code,
5tutorials, scene files and technical white papers, are copyrighted, proprietary
6and confidential material of Algoryx Simulation AB. You may not download, read,
7store, distribute, publish, copy or otherwise disseminate, use or expose this
8material unless having a written signed agreement with Algoryx Simulation AB, or having been
9advised so by Algoryx Simulation AB for a time limited evaluation, or having purchased a
10valid commercial license from Algoryx Simulation AB.
11
12Algoryx Simulation AB disclaims all responsibilities for loss or damage caused
13from using this software, unless otherwise stated in written agreements with
14Algoryx Simulation AB.
15*/
16#pragma once
18
19namespace agxStream
20{
21 class OutputArchive;
22 class InputArchive;
23}
24
25namespace agxSensor
26{
35 {
36 public:
37 static constexpr RtMaterialHandle::Type Type = RtMaterialHandle::Type::OPAQUE_GGX_AND_OREN_NAYAR;
38
39 public:
41
46
51
56
60 static RtGgxAndOrenNayarMaterial get( const agxSDK::LinkedStructure* linkedStructure );
61
66
71
76
77 public:
79
84
91
96
103
107 float getBeckmanRoughness() const;
108
116 RtGgxAndOrenNayarMaterial setBeckmanRoughness( float beckmanRoughness, bool linkOrenNayarRoughness = false );
117
122
130 RtGgxAndOrenNayarMaterial setOrenNayarRoughness( float orenNayarRoughness, bool linkBeckmanRoughness = false );
131
136
144
145 public:
146 void store( agxStream::OutputArchive& out ) const;
148
149 private:
150 using RtSurfaceMaterial::RtSurfaceMaterial;
151 };
152}
#define AGXSENSOR_EXPORT
The geometry representation used by the collision detection engine.
Definition: Geometry.h:92
Base class for a shape.
Definition: Shape.h:58
Basic implementation of any structure where bodies are linked/constrained together in a well defined ...
Opaque surface material reflecting light according to the combined two-layer model with a specular GG...
RtGgxAndOrenNayarMaterial setBeckmanRoughness(float beckmanRoughness, bool linkOrenNayarRoughness=false)
Assign new Beckman roughness of the material top-layer.
static RtGgxAndOrenNayarMaterial get(const agxSDK::LinkedStructure *linkedStructure)
static RtGgxAndOrenNayarMaterial get(const agx::RigidBody *rb)
RtGgxAndOrenNayarMaterial setRefractiveIndexReal(float refractiveIndexReal)
Assign new real part of the material top-layer refractive index.
static RtGgxAndOrenNayarMaterial create()
RtGgxAndOrenNayarMaterial setDiffuseReflectivity(float diffuseReflectivity)
Assign new reflectivity value to the second layer of this material.
static RtGgxAndOrenNayarMaterial get(const agxTerrain::TerrainPager *terrainPager)
static RtGgxAndOrenNayarMaterial get(const agxCollide::Shape *shape)
RtGgxAndOrenNayarMaterial setRefractiveIndexImaginary(float refractiveIndexImaginary)
Assign new imaginary part of the material top-layer refractive index.
void store(agxStream::OutputArchive &out) const
static RtGgxAndOrenNayarMaterial get(const agxTerrain::Terrain *terrain)
static RtGgxAndOrenNayarMaterial get(const agxCollide::Geometry *geometry)
static RtGgxAndOrenNayarMaterial get(const agxWire::Wire *wire)
RtGgxAndOrenNayarMaterial(RtMaterialInstance instance)
RtGgxAndOrenNayarMaterial setOrenNayarRoughness(float orenNayarRoughness, bool linkBeckmanRoughness=false)
Assign new Oren-Nayar roughness to the second layer of this material.
void restore(agxStream::InputArchive &in)
Surface material of shape instances in the raytrace environment.
Class for reading a binary stream of serialized data.
Definition: InputArchive.h:51
Class for writing serialized data in binary format to a stream.
Definition: OutputArchive.h:57
A pager that will dynamically handle terrain tiles in a agxSDK::Simulation.
Definition: TerrainPager.h:100
A terrain model based a 3D grid model with overlapping height field that can be deformed by interacti...
Definition: Terrain.h:92
Interface and placeholder of controllers/helpers for wires.
Definition: Wire.h:62
The rigid body class, combining a geometric model and a frame of reference.
Definition: RigidBody.h:49
The agxSensor namespace contains components to model real-time sensors connected to the physics of AG...
This namespace contain classes for streaming classes into archives, ASCII, binary for storage (serial...
Material instance in the raytrace environment, containing handle and type.