Red de conocimiento informático - Computadora portátil - Cesio avanzado | 02 Configuración del material

Cesio avanzado | 02 Configuración del material

Ya sea que los datos de geometría espacial se agreguen a través de clases de entidad o clases primitivas, Cesium proporcionará los métodos correspondientes o clases relacionadas con materiales para modificar materiales. Antes de explicar la configuración de los materiales, introduzcamos brevemente qué son los materiales. Un material puede ser cualquier color (Cesium.Color) de la superficie de un objeto geométrico, una imagen o textura adherida a la superficie, o un patrón, como las barras o el patrón de tablero de ajedrez en la imagen a continuación.

Para objetos geométricos dibujados de dos maneras (sólido y primitivo), Cesium también proporciona una clase Material y una clase MaterialProperty para materiales para objetos geométricos generados de manera primitiva y sólida. En particular, las propiedades materiales de la apariencia de una Primitiva (o clase heredada) son de tipo Material, mientras que las propiedades materiales de xxxGraphics de una Entidad son de tipo MaterialProperty o Color, así que no las confunda.

La clase Material se crea específicamente para la clase Apariencia y se utiliza para modificar el material de los objetos geométricos Primitivos. Al mismo tiempo, Apperance también tiene sus propias clases heredadas. Al modificar las propiedades del material de ciertas clases heredadas, también puede modificar el material de los objetos geométricos primitivos. La clase de herencia de Apariencia se muestra en la siguiente figura, en la que la subclase con fondo naranja puede modificar sus propiedades materiales.

Modificar materiales a través de la clase Material es relativamente complejo y requiere comprensión de OpenGL y el mecanismo de renderizado subyacente. El mecanismo interno de la clase Material en Cesium es expresar la apariencia del objeto a través del objeto Fabric en formato json. Las características del objeto son reflexión difusa (difusa), reflexión especular (especular), reflexión normal (normal), emisiva. reflexión (emisiva) y combinación alfa (es decir, componente). Consulte la explicación de Cesium sobre Fabric en /CesiumGS/cesium/wiki/Fabric.

Cesium nos proporciona 23 tipos de materiales listos para usar que se pueden usar para obtener y configurar materiales de objetos geométricos a través del método Material.fromType y Fabric. Aquí hay dos ejemplos de dos formas de implementar sombreado usando la clase Material:

Consulte la documentación de la clase Material: /index.html?src=Materials.html.

Desde la perspectiva de la composición del objeto Fabric de Material, para crear un nuevo Material, el usuario solo necesita especificar el tipo, el uniforme y los atributos de componentes para construir un objeto Fabric JSON. Si desea escribir algunos sombreadores personalizados, debe especificar el atributo de origen nuevamente.

La clase MaterialProperty se crea para Entity, es una clase abstracta y no podemos crear una instancia de ella. Para configurar un material usando esta clase, necesita crear una instancia de una subclase del mismo. La clase MaterialProperty tiene las siguientes clases de herencia:

1.ColorMaterialProperty material de color

La clase ColorMaterialProperty es relativamente simple, puedes reemplazarla directamente con Cesium.Color, el efecto final logrado por estas dos clases son iguales, ambas colorean directamente los objetos geométricos.

2.Material de mapeo ImageMaterialProperty

La clase ImageMaterialProperty permite pegar imágenes en la superficie de objetos geométricos.

3. CheckerboardMaterialProperty Textura de tablero de ajedrez

4.StripeMaterialProperty Textura de raya

5.GridMaterialProperty Grid (propiedad de material de cuadrícula)

6. PolylineGlowMaterialProperty Material luminoso

7. PolylineOutlineMaterialProperty Material de contorno

8.PolylineArrowMaterialProperty línea con flecha

9.PolylineDashMaterialProperty línea discontinua

Los 9 tipos anteriores Las representaciones generadas por el método son las siguientes: