1
- #include " reflection_baker .hpp"
1
+ #include " baked_reflections .hpp"
2
2
#include " server.hpp"
3
3
4
4
#include < godot_cpp/core/class_db.hpp>
8
8
9
9
using namespace godot ;
10
10
11
- void SteamAudioReflectionBaker ::_bind_methods () {
11
+ void SteamAudioBakedReflections ::_bind_methods () {
12
12
// Bind methods
13
- ClassDB::bind_method (D_METHOD (" set_baked_data" , " data" ), &SteamAudioReflectionBaker ::set_baked_data);
14
- ClassDB::bind_method (D_METHOD (" get_baked_data" ), &SteamAudioReflectionBaker ::get_baked_data);
15
- ClassDB::bind_method (D_METHOD (" start_bake" ), &SteamAudioReflectionBaker ::start_bake);
16
- ClassDB::bind_method (D_METHOD (" get_is_baking" ), &SteamAudioReflectionBaker ::get_is_baking);
17
- ClassDB::bind_method (D_METHOD (" get_bake_progress" ), &SteamAudioReflectionBaker ::get_bake_progress);
18
- ClassDB::bind_method (D_METHOD (" set_num_rays" , " num_rays" ), &SteamAudioReflectionBaker ::set_num_rays);
19
- ClassDB::bind_method (D_METHOD (" get_num_rays" ), &SteamAudioReflectionBaker ::get_num_rays);
20
- ClassDB::bind_method (D_METHOD (" set_num_bounces" , " num_bounces" ), &SteamAudioReflectionBaker ::set_num_bounces);
21
- ClassDB::bind_method (D_METHOD (" get_num_bounces" ), &SteamAudioReflectionBaker ::get_num_bounces);
22
- ClassDB::bind_method (D_METHOD (" set_duration" , " duration" ), &SteamAudioReflectionBaker ::set_duration);
23
- ClassDB::bind_method (D_METHOD (" get_duration" ), &SteamAudioReflectionBaker ::get_duration);
24
- ClassDB::bind_method (D_METHOD (" set_num_diffuse_samples" , " num_diffuse_samples" ), &SteamAudioReflectionBaker ::set_num_diffuse_samples);
25
- ClassDB::bind_method (D_METHOD (" get_num_diffuse_samples" ), &SteamAudioReflectionBaker ::get_num_diffuse_samples);
26
- ClassDB::bind_method (D_METHOD (" set_irradiance_min_distance" , " irradiance_min_distance" ), &SteamAudioReflectionBaker ::set_irradiance_min_distance);
27
- ClassDB::bind_method (D_METHOD (" get_irradiance_min_distance" ), &SteamAudioReflectionBaker ::get_irradiance_min_distance);
28
- ClassDB::bind_method (D_METHOD (" set_bake_parametric" , " bake_parametric" ), &SteamAudioReflectionBaker ::set_bake_parametric);
29
- ClassDB::bind_method (D_METHOD (" get_bake_parametric" ), &SteamAudioReflectionBaker ::get_bake_parametric);
30
- ClassDB::bind_method (D_METHOD (" set_bake_convolution" , " bake_convolution" ), &SteamAudioReflectionBaker ::set_bake_convolution);
31
- ClassDB::bind_method (D_METHOD (" get_bake_convolution" ), &SteamAudioReflectionBaker ::get_bake_convolution);
32
- ClassDB::bind_method (D_METHOD (" set_center" , " center" ), &SteamAudioReflectionBaker ::set_center);
33
- ClassDB::bind_method (D_METHOD (" get_center" ), &SteamAudioReflectionBaker ::get_center);
34
- ClassDB::bind_method (D_METHOD (" set_radius" , " radius" ), &SteamAudioReflectionBaker ::set_radius);
35
- ClassDB::bind_method (D_METHOD (" get_radius" ), &SteamAudioReflectionBaker ::get_radius);
36
- ClassDB::bind_method (D_METHOD (" set_probe_spacing" , " probe_spacing" ), &SteamAudioReflectionBaker ::set_probe_spacing);
37
- ClassDB::bind_method (D_METHOD (" get_probe_spacing" ), &SteamAudioReflectionBaker ::get_probe_spacing);
38
- ClassDB::bind_method (D_METHOD (" set_probe_height" , " probe_height" ), &SteamAudioReflectionBaker ::set_probe_height);
39
- ClassDB::bind_method (D_METHOD (" get_probe_height" ), &SteamAudioReflectionBaker ::get_probe_height);
40
- ClassDB::bind_method (D_METHOD (" set_probe_generation_extents" , " probe_generation_extents" ), &SteamAudioReflectionBaker ::set_probe_generation_extents);
41
- ClassDB::bind_method (D_METHOD (" get_probe_generation_extents" ), &SteamAudioReflectionBaker ::get_probe_generation_extents);
13
+ ClassDB::bind_method (D_METHOD (" set_baked_data" , " data" ), &SteamAudioBakedReflections ::set_baked_data);
14
+ ClassDB::bind_method (D_METHOD (" get_baked_data" ), &SteamAudioBakedReflections ::get_baked_data);
15
+ ClassDB::bind_method (D_METHOD (" start_bake" ), &SteamAudioBakedReflections ::start_bake);
16
+ ClassDB::bind_method (D_METHOD (" get_is_baking" ), &SteamAudioBakedReflections ::get_is_baking);
17
+ ClassDB::bind_method (D_METHOD (" get_bake_progress" ), &SteamAudioBakedReflections ::get_bake_progress);
18
+ ClassDB::bind_method (D_METHOD (" set_num_rays" , " num_rays" ), &SteamAudioBakedReflections ::set_num_rays);
19
+ ClassDB::bind_method (D_METHOD (" get_num_rays" ), &SteamAudioBakedReflections ::get_num_rays);
20
+ ClassDB::bind_method (D_METHOD (" set_num_bounces" , " num_bounces" ), &SteamAudioBakedReflections ::set_num_bounces);
21
+ ClassDB::bind_method (D_METHOD (" get_num_bounces" ), &SteamAudioBakedReflections ::get_num_bounces);
22
+ ClassDB::bind_method (D_METHOD (" set_duration" , " duration" ), &SteamAudioBakedReflections ::set_duration);
23
+ ClassDB::bind_method (D_METHOD (" get_duration" ), &SteamAudioBakedReflections ::get_duration);
24
+ ClassDB::bind_method (D_METHOD (" set_num_diffuse_samples" , " num_diffuse_samples" ), &SteamAudioBakedReflections ::set_num_diffuse_samples);
25
+ ClassDB::bind_method (D_METHOD (" get_num_diffuse_samples" ), &SteamAudioBakedReflections ::get_num_diffuse_samples);
26
+ ClassDB::bind_method (D_METHOD (" set_irradiance_min_distance" , " irradiance_min_distance" ), &SteamAudioBakedReflections ::set_irradiance_min_distance);
27
+ ClassDB::bind_method (D_METHOD (" get_irradiance_min_distance" ), &SteamAudioBakedReflections ::get_irradiance_min_distance);
28
+ ClassDB::bind_method (D_METHOD (" set_bake_parametric" , " bake_parametric" ), &SteamAudioBakedReflections ::set_bake_parametric);
29
+ ClassDB::bind_method (D_METHOD (" get_bake_parametric" ), &SteamAudioBakedReflections ::get_bake_parametric);
30
+ ClassDB::bind_method (D_METHOD (" set_bake_convolution" , " bake_convolution" ), &SteamAudioBakedReflections ::set_bake_convolution);
31
+ ClassDB::bind_method (D_METHOD (" get_bake_convolution" ), &SteamAudioBakedReflections ::get_bake_convolution);
32
+ ClassDB::bind_method (D_METHOD (" set_center" , " center" ), &SteamAudioBakedReflections ::set_center);
33
+ ClassDB::bind_method (D_METHOD (" get_center" ), &SteamAudioBakedReflections ::get_center);
34
+ ClassDB::bind_method (D_METHOD (" set_radius" , " radius" ), &SteamAudioBakedReflections ::set_radius);
35
+ ClassDB::bind_method (D_METHOD (" get_radius" ), &SteamAudioBakedReflections ::get_radius);
36
+ ClassDB::bind_method (D_METHOD (" set_probe_spacing" , " probe_spacing" ), &SteamAudioBakedReflections ::set_probe_spacing);
37
+ ClassDB::bind_method (D_METHOD (" get_probe_spacing" ), &SteamAudioBakedReflections ::get_probe_spacing);
38
+ ClassDB::bind_method (D_METHOD (" set_probe_height" , " probe_height" ), &SteamAudioBakedReflections ::set_probe_height);
39
+ ClassDB::bind_method (D_METHOD (" get_probe_height" ), &SteamAudioBakedReflections ::get_probe_height);
40
+ ClassDB::bind_method (D_METHOD (" set_probe_generation_extents" , " probe_generation_extents" ), &SteamAudioBakedReflections ::set_probe_generation_extents);
41
+ ClassDB::bind_method (D_METHOD (" get_probe_generation_extents" ), &SteamAudioBakedReflections ::get_probe_generation_extents);
42
42
43
43
// Add properties
44
44
ADD_GROUP (" Reflection Bake" , " " );
@@ -63,7 +63,7 @@ void SteamAudioReflectionBaker::_bind_methods() {
63
63
ADD_PROPERTY (PropertyInfo (Variant::OBJECT, " baked_data" , PROPERTY_HINT_RESOURCE_TYPE, " BakedReflectionData" ), " set_baked_data" , " get_baked_data" );
64
64
}
65
65
66
- SteamAudioReflectionBaker::SteamAudioReflectionBaker () {
66
+ SteamAudioBakedReflections::SteamAudioBakedReflections () {
67
67
probe_batch = nullptr ;
68
68
is_baking = false ;
69
69
bake_progress = 0 .0f ;
@@ -78,13 +78,13 @@ SteamAudioReflectionBaker::SteamAudioReflectionBaker() {
78
78
bake_convolution = true ;
79
79
}
80
80
81
- SteamAudioReflectionBaker ::~SteamAudioReflectionBaker () {
81
+ SteamAudioBakedReflections ::~SteamAudioBakedReflections () {
82
82
if (probe_batch) {
83
83
iplProbeBatchRelease (&probe_batch);
84
84
}
85
85
}
86
86
87
- void SteamAudioReflectionBaker ::generate_probes () {
87
+ void SteamAudioBakedReflections ::generate_probes () {
88
88
float x = probe_generation_extents.x ;
89
89
float y = probe_generation_extents.y ;
90
90
float z = probe_generation_extents.z ;
@@ -121,14 +121,14 @@ void SteamAudioReflectionBaker::generate_probes() {
121
121
iplProbeBatchCommit (probe_batch);
122
122
}
123
123
124
- void SteamAudioReflectionBaker ::set_baked_data (const Ref<SteamAudioBakedReflectionData>& p_data) {
124
+ void SteamAudioBakedReflections ::set_baked_data (const Ref<SteamAudioBakedReflectionData>& p_data) {
125
125
}
126
126
127
- Ref<SteamAudioBakedReflectionData> SteamAudioReflectionBaker ::get_baked_data () const {
127
+ Ref<SteamAudioBakedReflectionData> SteamAudioBakedReflections ::get_baked_data () const {
128
128
return nullptr ;
129
129
}
130
130
131
- IPLReflectionsBakeParams SteamAudioReflectionBaker ::get_bake_params () const {
131
+ IPLReflectionsBakeParams SteamAudioBakedReflections ::get_bake_params () const {
132
132
IPLBakedDataIdentifier identifier{};
133
133
identifier.type = IPL_BAKEDDATATYPE_REFLECTIONS;
134
134
identifier.variation = IPL_BAKEDDATAVARIATION_DYNAMIC;
@@ -163,7 +163,7 @@ IPLReflectionsBakeParams SteamAudioReflectionBaker::get_bake_params() const {
163
163
return params;
164
164
}
165
165
166
- void SteamAudioReflectionBaker ::start_bake () {
166
+ void SteamAudioBakedReflections ::start_bake () {
167
167
if (is_baking) {
168
168
return ;
169
169
}
@@ -175,11 +175,19 @@ void SteamAudioReflectionBaker::start_bake() {
175
175
IPLReflectionsBakeParams params = get_bake_params ();
176
176
iplReflectionsBakerBake (context, ¶ms, nullptr , nullptr );
177
177
178
+ IPLSerializedObject serialized_object{};
179
+ iplProbeBatchSave (probe_batch, serialized_object);
180
+
181
+ if (!baked_data.is_valid ()) {
182
+ baked_data.instantiate ();
183
+ }
184
+ baked_data->set_serialized_data_internal (iplSerializedObjectGetData (serialized_object));
185
+
178
186
is_baking = false ;
179
187
}
180
188
181
- void SteamAudioReflectionBaker ::bake_progress_callback (float progress, void * user_data) {
182
- SteamAudioReflectionBaker * manager = static_cast <SteamAudioReflectionBaker *>(user_data);
189
+ void SteamAudioBakedReflections ::bake_progress_callback (float progress, void * user_data) {
190
+ SteamAudioBakedReflections * manager = static_cast <SteamAudioBakedReflections *>(user_data);
183
191
manager->bake_progress = progress;
184
192
185
193
// Print progress every 10%
@@ -191,29 +199,29 @@ void SteamAudioReflectionBaker::bake_progress_callback(float progress, void* use
191
199
}
192
200
}
193
201
194
- bool SteamAudioReflectionBaker ::get_is_baking () const {return is_baking;}
195
- float SteamAudioReflectionBaker ::get_bake_progress () const {return bake_progress;}
196
- void SteamAudioReflectionBaker ::set_num_rays (int p_num_rays) { num_rays = p_num_rays; }
197
- int SteamAudioReflectionBaker ::get_num_rays () const { return num_rays; }
198
- void SteamAudioReflectionBaker ::set_num_bounces (int p_num_bounces) { num_bounces = p_num_bounces; }
199
- int SteamAudioReflectionBaker ::get_num_bounces () const { return num_bounces; }
200
- void SteamAudioReflectionBaker ::set_duration (float p_duration) { duration = p_duration; }
201
- float SteamAudioReflectionBaker ::get_duration () const { return duration; }
202
- void SteamAudioReflectionBaker ::set_num_diffuse_samples (int p_num_diffuse_samples) { num_diffuse_samples = p_num_diffuse_samples; }
203
- int SteamAudioReflectionBaker ::get_num_diffuse_samples () const { return num_diffuse_samples; }
204
- void SteamAudioReflectionBaker ::set_irradiance_min_distance (float p_irradiance_min_distance) { irradiance_min_distance = p_irradiance_min_distance; }
205
- float SteamAudioReflectionBaker ::get_irradiance_min_distance () const { return irradiance_min_distance; }
206
- void SteamAudioReflectionBaker ::set_bake_parametric (bool p_bake_parametric) { bake_parametric = p_bake_parametric; }
207
- bool SteamAudioReflectionBaker ::get_bake_parametric () const { return bake_parametric; }
208
- void SteamAudioReflectionBaker ::set_bake_convolution (bool p_bake_convolution) { bake_convolution = p_bake_convolution; }
209
- bool SteamAudioReflectionBaker ::get_bake_convolution () const { return bake_convolution; }
210
- void SteamAudioReflectionBaker ::set_center (Vector3 p_center) { center = p_center; }
211
- Vector3 SteamAudioReflectionBaker ::get_center () const { return center; }
212
- void SteamAudioReflectionBaker ::set_radius (float p_radius) { radius = p_radius; }
213
- float SteamAudioReflectionBaker ::get_radius () const { return radius; }
214
- void SteamAudioReflectionBaker ::set_probe_spacing (float p_probe_spacing) { probe_spacing = p_probe_spacing; }
215
- float SteamAudioReflectionBaker ::get_probe_spacing () const { return probe_spacing; }
216
- void SteamAudioReflectionBaker ::set_probe_height (float p_probe_height) { probe_height = p_probe_height; }
217
- float SteamAudioReflectionBaker ::get_probe_height () const { return probe_height; }
218
- void SteamAudioReflectionBaker ::set_probe_generation_extents (Vector3 p_probe_generation_extents) { probe_generation_extents = p_probe_generation_extents; }
219
- Vector3 SteamAudioReflectionBaker ::get_probe_generation_extents () const { return probe_generation_extents; }
202
+ bool SteamAudioBakedReflections ::get_is_baking () const {return is_baking;}
203
+ float SteamAudioBakedReflections ::get_bake_progress () const {return bake_progress;}
204
+ void SteamAudioBakedReflections ::set_num_rays (int p_num_rays) { num_rays = p_num_rays; }
205
+ int SteamAudioBakedReflections ::get_num_rays () const { return num_rays; }
206
+ void SteamAudioBakedReflections ::set_num_bounces (int p_num_bounces) { num_bounces = p_num_bounces; }
207
+ int SteamAudioBakedReflections ::get_num_bounces () const { return num_bounces; }
208
+ void SteamAudioBakedReflections ::set_duration (float p_duration) { duration = p_duration; }
209
+ float SteamAudioBakedReflections ::get_duration () const { return duration; }
210
+ void SteamAudioBakedReflections ::set_num_diffuse_samples (int p_num_diffuse_samples) { num_diffuse_samples = p_num_diffuse_samples; }
211
+ int SteamAudioBakedReflections ::get_num_diffuse_samples () const { return num_diffuse_samples; }
212
+ void SteamAudioBakedReflections ::set_irradiance_min_distance (float p_irradiance_min_distance) { irradiance_min_distance = p_irradiance_min_distance; }
213
+ float SteamAudioBakedReflections ::get_irradiance_min_distance () const { return irradiance_min_distance; }
214
+ void SteamAudioBakedReflections ::set_bake_parametric (bool p_bake_parametric) { bake_parametric = p_bake_parametric; }
215
+ bool SteamAudioBakedReflections ::get_bake_parametric () const { return bake_parametric; }
216
+ void SteamAudioBakedReflections ::set_bake_convolution (bool p_bake_convolution) { bake_convolution = p_bake_convolution; }
217
+ bool SteamAudioBakedReflections ::get_bake_convolution () const { return bake_convolution; }
218
+ void SteamAudioBakedReflections ::set_center (Vector3 p_center) { center = p_center; }
219
+ Vector3 SteamAudioBakedReflections ::get_center () const { return center; }
220
+ void SteamAudioBakedReflections ::set_radius (float p_radius) { radius = p_radius; }
221
+ float SteamAudioBakedReflections ::get_radius () const { return radius; }
222
+ void SteamAudioBakedReflections ::set_probe_spacing (float p_probe_spacing) { probe_spacing = p_probe_spacing; }
223
+ float SteamAudioBakedReflections ::get_probe_spacing () const { return probe_spacing; }
224
+ void SteamAudioBakedReflections ::set_probe_height (float p_probe_height) { probe_height = p_probe_height; }
225
+ float SteamAudioBakedReflections ::get_probe_height () const { return probe_height; }
226
+ void SteamAudioBakedReflections ::set_probe_generation_extents (Vector3 p_probe_generation_extents) { probe_generation_extents = p_probe_generation_extents; }
227
+ Vector3 SteamAudioBakedReflections ::get_probe_generation_extents () const { return probe_generation_extents; }
0 commit comments