class_docstr: A framebuffer holding rasterized values required for deferred shading.
  
  Tensors are expected to have shape [batch, height, width, channels].
  
  For now, the fields are specialized for triangle rendering. Other primitives
  may be supported in the future.
  
  Immutable once created. Uses cached_property to avoid creating redundant
  tf ops when properties are accessed multiple times.
class_docstr_tok: ["A","framebuffer","holding","rasterized","values","required","for","deferred","shading",".","Tensors","are","expected","to","have","shape","[","batch",",","height",",","width",",","channels","]",".","For","now",",","the","fields","are","specialized","for","triangle","rendering",".","Other","primitives","may","be","supported","in","the","future",".","Immutable","once","created",".","Uses","cached_property","to","avoid","creating","redundant","tf","ops","when","properties","are","accessed","multiple","times","."]
code: def is_multi_layer(self):
      return len(self.triangle_id.shape) == 5
  
file_path: graphics/tensorflow_graphics/rendering/framebuffer.py
imports: import dataclasses
  from typing import Dict, Optional
  import tensorflow
label_desc: Use image node_id 3 for calling the Framebuffer obj's underlying member method code with example usage: obj.is_multi_layer() and returns: unknown