@@ -155,7 +155,7 @@ def set_render_result(render_passes: bpy.types.RenderPasses):
155
155
images_data = np .concatenate (images )
156
156
if BLENDER_VERSION >= '4.0' :
157
157
# foreach_set requires every pass to be 4 channels, so we resize to reach desirable size
158
- images_data .resize ((len (render_passes ) * self .width * self .height * 4 ,))
158
+ np .resize ( images_data , (len (render_passes ) * self .width * self .height * 4 ,))
159
159
160
160
# efficient way to copy all AOV images
161
161
render_passes .foreach_set ('rect' , images_data )
@@ -211,7 +211,7 @@ def set_render_result(render_passes: bpy.types.RenderPasses):
211
211
images_data = np .concatenate (images )
212
212
if BLENDER_VERSION >= '4.0' :
213
213
# foreach_set requires every pass to be 4 channels, so we resize to reach desirable size
214
- images_data .resize ((len (render_passes ) * self .width * self .height * 4 ,))
214
+ np .resize ( images_data , (len (render_passes ) * self .width * self .height * 4 ,))
215
215
216
216
# efficient way to copy all AOV images
217
217
render_passes .foreach_set ('rect' , images_data )
@@ -329,7 +329,6 @@ def _render(self):
329
329
330
330
log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
331
331
log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
332
- self .athena_send (athena_data )
333
332
334
333
def _render_tiles (self ):
335
334
athena_data = {}
@@ -477,8 +476,6 @@ def _render_tiles(self):
477
476
log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
478
477
log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
479
478
480
- self .athena_send (athena_data )
481
-
482
479
def _render_contour (self ):
483
480
log (f"Doing Outline Pass" )
484
481
@@ -557,7 +554,6 @@ def _render_contour(self):
557
554
558
555
log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
559
556
log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
560
- self .athena_send (athena_data )
561
557
562
558
def render (self ):
563
559
if not self .is_synced :
@@ -805,63 +801,8 @@ def sync(self, depsgraph):
805
801
log ('Finish sync' )
806
802
807
803
def athena_send (self , data : dict ):
808
- if not (utils .IS_WIN or utils .IS_MAC ):
809
804
return
810
805
811
- settings = get_user_settings ()
812
- if not settings .collect_stat :
813
- return
814
-
815
- from rprblender .utils import athena
816
- if athena .is_disabled ():
817
- return
818
-
819
- devices = settings .final_devices
820
-
821
- data ['CPU Enabled' ] = devices .cpu_state
822
- for i , gpu_state in enumerate (devices .available_gpu_states ):
823
- data [f'GPU{ i } Enabled' ] = gpu_state
824
-
825
- data ['Resolution' ] = (self .width , self .height )
826
- data ['Number Lights' ] = sum (1 for o in self .rpr_context .scene .objects
827
- if isinstance (o , pyrpr .Light ))
828
- data ['AOVs Enabled' ] = tuple (
829
- f'RPR_{ v } ' for v in dir (pyrpr ) if v .startswith ('AOV_' )
830
- and getattr (pyrpr , v ) in self .rpr_context .frame_buffers_aovs
831
- )
832
-
833
- data ['Ray Depth' ] = self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_RECURSION )
834
- data ['Shadow Ray Depth' ] = self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_SHADOW )
835
- data ['Reflection Ray Depth' ] = \
836
- self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_DIFFUSE , 0 ) + \
837
- self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_GLOSSY , 0 )
838
- data ['Refraction Ray Depth' ] = \
839
- self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_REFRACTION , 0 ) + \
840
- self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_GLOSSY_REFRACTION , 0 )
841
-
842
- data ['Num Polygons' ] = sum (
843
- (o .mesh .poly_count if isinstance (o , pyrpr .Instance ) else o .poly_count )
844
- for o in self .rpr_context .objects .values () if isinstance (o , pyrpr .Shape )
845
- )
846
- data ['Num Textures' ] = len (self .rpr_context .images )
847
-
848
- # temporary ignore getting texture sizes with hybrid,
849
- # until it'll be fixed on hybrid core side
850
- from . context_hybrid import RPRContext as RPRContextHybrid
851
- from . context_hybridpro import RPRContext as RPRContextHybridPro
852
- if not isinstance (self .rpr_context , (RPRContextHybrid , RPRContextHybridPro )):
853
- data ['Textures Size' ] = sum (im .size_byte for im in self .rpr_context .images .values ()) \
854
- // (1024 * 1024 ) # in MB
855
-
856
- data ['RIF Type' ] = self .image_filter .settings ['filter_type' ] if self .image_filter else None
857
-
858
- self ._update_athena_data (data )
859
-
860
- # sending data
861
- athena .send_data (data )
862
-
863
- def _update_athena_data (self , data ):
864
- data ['Quality' ] = "full"
865
806
866
807
def prepare_scene_stamp_text (self , scene ):
867
808
""" Fill stamp with static scene and render devices info that user can ask for """
0 commit comments