$Version

Labeled Typesets to LabeledGraphicsBox

Why LabeledGraphicsBox

Provides Selection/Resize Handles around entire construct

Labeled[Graphics3D[Sphere[],Background->GrayLevel[0.2]],"Labeled 3D Graphic",Background->GrayLevel[0.4]]

Better layout and control: avoids empty space between the Label and Graphic or around it

e . g . Enlarging GraphicsRow of Labeled Graphics introduces empty space

GraphicsRow[{Labeled[Graphics[Disk[]],"Labeled 2D Graphic",Background->GrayLevel[0.2]],Labeled[Graphics3D[Sphere[]],"Labeled 3D Graphic",Background->GrayLevel[0.2]]}]

LabeledGraphicsBox Parity with Labeled

Outstanding ContentSize (and ImageSize) Forms Implemented in 15.0

w 				width specified by w

UpTo[s] 			maximum width and height specified by s

Labeled[Graphics3D[Sphere[],Background->LightYellow,ImageSize->1000],"ContentSize->UpTo[s]",ContentSize->UpTo[100],Background->LightBlue]

Labeled[Graphics[Circle[],AspectRatio->#,Background->LightYellow],"UpTo[s]",ContentSize->UpTo[100],Background->LightBlue]&/@{0.5,1.0,2.0}

{w, h}				explicit width and height

Labeled[Graphics3D[Sphere[],Background->gray,ImageSize->50],"ContentSize->{w,h}",ContentSize->{200,100},Background->darkPurple]

ContentSize respects smaller embedded graphics ImageSize

{UpTo[wmax], UpTo[hmax]} 	width and height maximums

Labeled[Graphics[Circle[],AspectRatio->#,Background->LightYellow],"UpTo[s]",
ContentSize->{UpTo[100],UpTo[200]},
Background->LightBlue]&/@{0.5,1.0,2.0}

Labeled[Graphics[Circle[],AspectRatio->#,Background->LightYellow],"UpTo[s]",ContentSize->{UpTo[200],UpTo[100]},Background->LightBlue]&/@{0.5,1.0,2.0}

Labeled[Graphics3D[Sphere[],Background->LightYellow, ImageSize->1000],"{UpTo[wmax], UpTo[hmax]}",ContentSize->{UpTo[100],UpTo[200]},Background->LightBlue]

Support Full and Scaled[s]

Full				fill out the enclosing region

Labeled[Graphics[Circle[]],"hello",ContentSize->Full]

Framed[Pane[Labeled[Graphics[Circle[]],"Full Inside a Pan",Background->GrayLevel[0.2],ContentSize->Full],300]]

Scaled[s]			a fraction s of the enclosing region

Labeled[Graphics[Circle[]],"Scaled[s]",Background->GrayLevel[0.2],ContentSize->Scaled[.5]]

Framed[Pane[Labeled[Graphics[Circle[]],"Scaled[s]",Background->GrayLevel[0.2],ContentSize->Scaled[.5]],300]]

Works with Named sizes

Framed[Pane[
Labeled[Graphics[Circle[]],"label",ContentSize->UpTo[Small]],400]]

Note: ContentSize trumps ImageSize

Labeled[Graphics[{Circle[{0,0}]},Background->GrayLevel[0.2]],"ContentSize vs ImageSize",{Bottom},ContentSize->150,ImageSize->1000,Background->GrayLevel[0.4]]

Support wrapping embedded graphic in FrameBox

Framed vs Frame->True

Framed[Labeled[Graphics3D[Sphere[]],"Framed"]]

ToBoxes@Framed[Labeled[Graphics3D[Sphere[]],"Framed"]]

Consistent with Labeled behavior - Frame only the Graphic expression, not the label

Labeled[Graphics3D[Sphere[]],"Frame->True",Frame->True]

ToBoxes@Labeled[Graphics3D[Sphere[]],"Frame->True",Frame->True]

Frame, FrameStyle, FrameMargins, RoundingRadius

Labeled[Graphics3D[Sphere[]],"Frame->True",Frame->True,FrameMargins->30,FrameStyle->Directive[Thickness[10],Green],RoundingRadius->10]

LabeledGraphicsBox Resizing behavior changes

Behavior change from 14.3

Labeled[Graphics[Disk[],Background->GrayLevel[0.5]],Framed[StringRiffle[Table["hello",20]]],Bottom,Background->GrayLevel[0.3]]

Labeled[Graphics[Disk[],Background->GrayLevel[0.5]],{StringRiffle[Table["hello",20]]},{Left},Background->GrayLevel[0.3],RotateLabel->{False,False,True}]

Tighter PlotRange fitting around curves

pts={{0,0},{1,5},{2,-1},{3,0},{5,2},{6,-1},{7,3}};
Graphics[{BezierCurve[pts],Green,Line[pts],Red,Point[pts]},Axes->True]

Graphics[{BezierCurve[pts]},Axes->True]

AbsoluteOptions[%,PlotRange]

PlotRange of BSplineCurves, BezierCurves, BSplineSurface, etc is now determined from the curve itself instead of control points

Improved Depth Buffer Precision - ReverseZ

e . g . game example

Graphics3D[house,ViewVector->{{10,10,5},{0,0,5}},ViewAngle->1.8,Method->{"ReverseZ"->False}]

Details

Counteracts non - linear Perspective divide 1/z

Reduces Z - fighting and depth buffer precision artifacts

No extra memory or performance costs

DirectX, Metal Renderers default

Method -> {"ReverseZ" -> True}

Faster SurfaceAppearance with Depth Peeling

Graphics3D[{Green,Opacity[0.6],Sphere[],MaterialShading[{"Iron",RGBColor[1,0,0,0.6]}],Sphere[{0.5,0.5,0.5}]},Lighting->"Neutral"]

Graphics3D[{Green,Opacity[0.6],Sphere[],MaterialShading[{"Iron",Red}],Sphere[{0.5,0.5,0.5}]},Lighting->"Neutral",Method->{"OneLayer"->{"Color",2}}]

Graphics3D[{Green,Opacity[0.6],Sphere[],Red,ToonShading[],Sphere[{0.5,0.5,0.5}]},Lighting->"Accent"]

Notes and References

house={(*the house*){Darker[Red,0.3],Cuboid[{-10,-10,0},{2,3,12}]},(*roof*){Darker[Brown,0.4],Polygon[{{-10,-10,12},{-4,-3,18},{2,-10,12}}]},{Darker[Brown,0.4],Polygon[{{2,-10,12},{-4,-3,18},{2,3,12}}]},{Darker[Brown,0.4],Polygon[{{2,3,12},{-4,-3,18},{-10,3,12}}]},{Darker[Brown,0.4],Polygon[{{-10,3,12},{-4,-3,18},{-10,-10,12}}]},(*Door*){Yellow,Polygon[{{2.005,-5.25,0},{2.005,-5.25,5},{2.005,-1.75,5},{2.005,-1.75,0}}]},(*Door Knob*){Orange,Sphere[{2.005,-2.25,2.5},0.25]},(*Windows*){Lighter[Blue,0.5],Polygon[{{2.005,-9,6},{2.005,-9,10},{2.005,-5,10},{2.005,-5,6}}]},{Lighter[Blue,0.5],Polygon[{{2.005,-1.75,6},{2.005,-1.75,10},{2.005,2,10},{2.005,2,6}}]},(*Chimney*){Gray,Cuboid[{-2,-9,12.75},{-5,-7,17}]},(*Lines for the Window*){Black,Cuboid[{2.006,-9,7.9},{2.006,-5,8.1}]},{Black,Cuboid[{2.006,-7.1,6},{2.006,-6.9,10}]},{Black,Cuboid[{2.006,0,6},{2.006,0.2,10}]},{Black,Cuboid[{2.006,-1.75,7.9},{2.006,2,8.1}]},(*Lawn*){Darker[Green,0.5],Polygon[{{2,-10,0},{2,3,0},{-10,3,0},{-10,10,0},{2,10,0},{10,10,0},{10,-10,0}}]},(*Pavement*){Darker[Gray,0.5],Polygon[{{2,-5.25,0.005},{2,-1.75,0.005},{10,-1.75,0.005},{10,-5.25,0.005}}]},(*Side Windows*){Lighter[Blue,0.5],Polygon[{{1,3.005,2},{1,3.005,5},{-4,3.005,5},{-4,3.005,2}}]},{Lighter[Blue,0.5],Polygon[{{-5,3.005,7},{-9,3.005,7},{-9,3.005,10},{-5,3.005,10}}]},{Lighter[Blue,0.5],Polygon[{{0,3.005,7},{0,3.005,11},{-2,3.005,11},{-2,3.005,7}}]},{Lighter[Blue,0.5],Polygon[{{-6,3.005,2},{-6,3.005,6},{-8,3.005,6},{-8,3.005,2}}]},{Lighter[Blue,0.5],Polygon[{{1,-10.005,2},{1,-10.005,5},{-4,-10.005,5},{-4,-10.005,2}}]},{Lighter[Blue,0.5],Polygon[{{-5,-10.005,7},{-9,-10.005,7},{-9,-10.005,10},{-5,-10.005,10}}]},{Lighter[Blue,0.5],Polygon[{{0,-10.005,7},{0,-10.005,11},{-2,-10.005,11},{-2,-10.005,7}}]},{Lighter[Blue,0.5],Polygon[{{-6,-10.005,2},{-6,-10.005,6},{-8,-10.005,6},{-8,-10.005,2}}]},(*Back Window*){Lighter[Blue,0.5],Polygon[{{-10.005,1,3},{-10.005,1,9},{-10.005,-8,9},{-10.005,-8,3}}]},(*Lines for the Window*){Black,Cuboid[{-1.4,3.006,2},{-1.6,3.006,5}]},{Black,Cuboid[{1,3.006,3.4},{-4,3.005,3.6}]},{Black,Cuboid[{-6.85,3.006,7},{-7.1,3.006,10}]},{Black,Cuboid[{-5,3.006,8.4},{-9,3.006,8.6}]},{Black,Cuboid[{-1.4,-10.006,2},{-1.6,-10.006,5}]},{Black,Cuboid[{1,-10.006,3.4},{-4,-10.005,3.6}]},{Black,Cuboid[{-6.85,-10.006,7},{-7.1,-10.006,10}]},{Black,Cuboid[{-5,-10.006,8.4},{-9,-10.006,8.6}]}};

RayTraced Spikey

poly=PolyhedronData["Spikey"][[1]];
Rasterize[Style[Graphics3D[{EdgeForm[],Opacity[0.6],Red,poly,Opacity[1.0],LightYellow,Polygon[{{-2,-2,-1.2},{2,-2,-1.2},{2,2,-1.2},{-2,2,-1.2}}]},Boxed->False,ViewPoint->Front,ViewVertical->{0,0,1},Method->{"RayTracing"->{"ImageSamples"->64,"RayBounces"->4}},BaseStyle->{RenderingOptions->{"3DRenderingMethod"->"RayTracing"}},Lighting->{{"Area",White,{2,-2,7},{{1,0.0,0},{0,0.5,0}}}},ImageSize->Medium],RenderingOptions->{"3DRenderingMethod"->"RayTracing"}],Background->None]

Reference:

https://godotengine.org/article/introducing-reverse-z/

https://developer.nvidia.com/content/depth-precision-visualized