[
EDITED]
Scenery object placement positioning elevation sometimes eliminates display and Z-Buffer fighting Moire issues.
But one must inspect the scenery in question at multiple altitudes AGL- and tangent angles of view- to verify a fix.
IIRC, Arno used (
+) increments of that in MCX G-Poly Wizard as FSX had no true Z-Bias (VTP Layer-type) draw order.
One might wonder if MSFS rendering engine still can use that when displaying true FSX scenery BGLs at run time.
NOTE: Prepar3D SDK had implemented 'Z-Bias Level' with (
-) numeric values for layer offset from user camera
https://www.prepar3d.com/SDKv5/sdk/modeling/3ds_max/modeling/modeling_materials.html#ZBiasLevel
AFAIK, L-M intended that terminology to describe the "level" at which Materials were displayed in a stack of layers.
L-M also refers to that as a "Material Functionality" feature.
I need to update my knowledge, as to how Asobo implemented Z-Bias in MSFS for G-Polys / Projected Mesh.
Reportedly, Projected Mesh is supposed to 'merge' texture Material of a flat 3D G-Poly with MSFS Polygon layers.
I am not certain yet if Asobo has changed something with terrain texturing, so imported G-Polys do not "drape".
This is what MSFS SDK Docs say:
https://docs.flightsimulator.com/ht...nery_Editor/Objects/ProjectedMesh_Objects.htm
This is what Google says about it:
https://www.google.com/search?q=MSFS+Z-Bias+for+G-Polys+/+Projected+Mesh&client=firefox-b-1-d&hs=a7D&sca_esv=498a0b3614a20001&ei=PjK-abDID9e9p84PqazsgAc&biw=1200&bih=586&ved=2ahUKEwiw35nRprCTAxXX3skDHSkWG3AQ4dUDegQIBRAN&oq=MSFS+Z-Bias+for+G-Polys+/+Projected+Mesh&gs_lp=Egxnd3Mtd2l6LXNlcnAiKE1TRlMgWi1CaWFzIGZvciBHLVBvbHlzIC8gUHJvamVjdGVkIE1lc2gyBRAhGKABMgUQIRigATIFECEYoAEyBRAhGKABSL1eUMAJWMg7cAJ4AJABAJgBaaAB6AOqAQM1LjG4AQzIAQD4AQH4AQKYAgigAp8EqAIUwgIREAAYgAQYsAMYsQMYgwEYigXCAg4QABiABBiwAxixAxiDAcICFBAAGIAEGLADGLEDGIMBGIoFGI0GwgILEAAYgAQYsAMYsQPCAggQABiABBiwA8ICHBAuGIAEGNEDGEMYtAIY5wYYxwEYigUY6gLYAQHCAhYQABiABBhDGLQCGOcGGIoFGOoC2AEBwgIWEC4YgAQYQxi0AhjnBhiKBRjqAtgBAcICEBAAGAMYtAIY6gIYjwHYAQLCAhAQLhgDGLQCGOoCGI8B2AECwgIOEAAYgAQYsQMYgwEYigXCAhAQABiABBixAxhDGIMBGIoFwgILEAAYgAQYsQMYgwHCAg4QLhiABBixAxjRAxjHAcICCxAuGIAEGNEDGMcBwgIFEC4YgATCAg0QABiABBixAxhDGIoFwgITEC4YgAQYsQMY0QMYQxjHARiKBcICChAAGIAEGEMYigXCAhEQLhiABBixAxjRAxiDARjHAcICCxAuGIAEGLEDGIMBwgINEC4YgAQYsQMYQxiKBcICBRAAGIAEwgIIEC4YgAQYsQPCAgQQABgDwgIXEC4YgAQYsQMYlwUY3AQY3gQY4ATYAQLCAhwQLhiABBixAxhDGIoFGJcFGNwEGN4EGOAE2AECmAML8QV30EBndvZnW4gGAZAGCboGBAgBGAe6BgYIAhABGAqSBwM3LjGgB60-sgcDNS4xuAeOBMIHBTItNy4xyAcvgAgA&sclient=gws-wiz-serp
https://www.google.com/search?q=MSF...wgcIMC41LjIxLjbIB7YBgAgA&sclient=gws-wiz-serp
This is what Microsoft DirectX 9.0 SDK Docs say about 'Depth Bias':
https://learn.microsoft.com/en-us/windows/win32/direct3d9/depth-bias#:~:text=Polygons that are coplanar in,value as the wall does.
This is what Microsoft DirectX 9.0 SDK Docs say about 'Z-Bias':
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/bb324464(v=vs.85)
This is what Google says about Microsoft DirectX 10.0 'Z-Bias':
https://www.google.com/search?q=Dir...gH4wLCBwUwLjEuNMgHE4AIAA&sclient=gws-wiz-serp
This is what Google says about Microsoft DirectX 11.0 'Z-Bias':
https://www.google.com/search?q=Dir...uAfqAsIHBTAuMS40yAcRgAgA&sclient=gws-wiz-serp
This is what Google says about Microsoft DirectX 12.0 'Z-Bias':
https://www.google.com/search?q=Dir...HlwvCBwYwLjExLjXIByiACAA&sclient=gws-wiz-serp
IIUC, Asobo implemented 'Z-Bias Level' via
Draw Order ("Z" in FS 3D world = layer offset from user Camera):
https://docs.flightsimulator.com/html/Asset_Creation/3DS_Max_Plugin/Materials.htm
"
Draw Order
This value modifies the sorting order, and the value can range from from -999 to 999. In the simulation, objects are sorted from back to front
using the mesh center. By "mesh center" we mean the actual mesh bounding box center,
not the pivot position itself (pivot position does not affect the draw order sort algorithm). As such, the
Draw Order parameter can be used to offset the distance used to sort the rendering order, for cases where the meshes center doesn't provide the correct order. This can be used to avoid rendering artifacts such as flickering when multiple transparent or decal material types are on top of each other in the rendered output. This parameter is effective for
Decal,
Glass and
Windshield materials. In the case of decals, the value strictly specifies the order in which decals are rendered, where a higher value will be drawn above and a lower value will be drawn below. In the case of Glass and Windshield materials, the value is added as an offset to the distance used to sort the objects for rendering."
IIUC,
this is distinct from FS' scenery object placement positioning 'offset' factor implemented via Bias X,Y, or Z.
https://docs.flightsimulator.com/ms...ration/Environment/General_XML_Properties.htm
"
<BiasXYZ />
This element is used to add an X, Y, Z bias in meters to the placement of an object. The acceptable range of values is unbound, but it is recommended that biases only be applied for small distances.
| Attribute | Description | Type | Required |
|---|
biasX | Bias along the longitudinal axis in meters. | Float | Yes |
biasY | Altitude bias in meters. | Float | Yes |
biasZ | Bias along the latitudinal axis in meters. | Float | Yes |
This element is used in the following places:
<VisualModel>
<AttachedObject>
<SceneryObject>"
NOTE: This follows most of what FSX / P3D SDK implemented via SDK BGLComp:
https://learn.microsoft.com/en-us/p...osoft-esp/cc526978(v=msdn.10)#scenery-objects
Again, one may wonder if MSFS rendering engine still uses that when displaying true FSX scenery BGLs at run time.
AFAIK, MSFS SDK uses
Priority and
Draw Before to control G-Polys intended to become Projected Mesh.
IIUC, MSFS Projected Mesh G-Polys become an 'independent' type of custom textured "Apron Polygon" that
can be displayed outside a ARP Test Radius:
https://docs.flightsimulator.com/ht...nery_Editor/Objects/ProjectedMesh_Objects.htm
"
Projected Mesh (Group) Properties
Projected Mesh groups have the following
Properties which can be edited (regardless of whether they are within an airport or independent):
"
"Priority
This option sets the
render priority for the projected mesh object. The default render priority is 0, which for most cases is fine. However, if you have overlapping meshes and want one to render over another one, then you will need to change this value clicking the + or - buttons to raise or lower the priority value. Higher priority values will render
over lower priorities, for example, a mesh with priority 1 will render over one with priority 0, which in turn will render over one with priority -1. Note that
the engine cannot guarantee the render order for meshes with the same priority, so if you need something to always render over or under something else, you need to set this value."
"Draw Before
This option permits you to place meshes into the render hierarchy so that they are drawn under or over different elements. When you click this option, you will be shown a list of object elements which are shown in the order they are rendered. When you pick one, the projected mesh will be rendered
over the previous object types, and
under the subsequent types. For example, if you select MARKINGS, then the projected mesh will be rendered over Aprons, Taxiways and Runways, but under Markings, Runway Markings and Marking Text."
[
END_EDIT]
GaryGB