La Red de Conocimientos Pedagógicos - Currículum vitae - La primera etapa de la optimización de llamadas de sorteo de cocos Creator 2.4.x (dominar el conocimiento necesario para controlar la cantidad de llamadas de sorteo).

La primera etapa de la optimización de llamadas de sorteo de cocos Creator 2.4.x (dominar el conocimiento necesario para controlar la cantidad de llamadas de sorteo).

1. Entorno de prueba

2. ¿Por qué drawcall afecta el rendimiento?

3. ¿Qué componentes admiten el renderizado?

4. Factores que afectan los retiros

5. En una oración, introduzca cómo reducir los retiros.

6. ¿Qué componentes de renderizado no se renderizarán?

7. La teoría de la reducción de drawcalls (en la segunda fase)

8. La teoría guía la práctica, la práctica confirma la teoría y demuestra la práctica (tercera fase)

9. Resumen (en el tercer número)

"Entorno de prueba":

1. Sistema Mac

2.

"¿Por qué drawcall afecta el rendimiento?"

Drawcall: la llamada de dibujo se refiere a que la CPU llama a la interfaz de dibujo de gráficos para ordenarle a la GPU que dibuje gráficos.

"Antes de cada dibujo, la CPU debe preparar los parámetros de dibujo (estado) para el procesamiento de datos complejos, como filtros de color y sombreadores, y luego realizar llamadas de dibujo. Si hay una gran cantidad de llamadas de dibujo, la CPU estará muy ocupado y la potencia de procesamiento de la GPU es muy fuerte. En este momento, es posible que esté inactiva y no pueda ejercer sus capacidades, lo que provocará una degradación del rendimiento."

"¿Qué componentes admiten el renderizado? Debido a que drawcall es la interfaz de dibujo de gráficos llamada por la CPU para ordenar a la GPU que dibuje y renderice gráficos, para controlar mejor drawcall, necesita saber qué componentes de cocoscreator admiten el renderizado.

**

"Factores que afectan el sorteo:"

1. Jerarquía (zindex)

2. textura, fusión). Sólo se pueden agrupar nodos de renderizado con el mismo material. La textura y el sombreador determinan el material, y el nivel determina si el mismo material se puede fusionar, es decir, usar drawcall para fusionar mallas.

"Cómo reducir los drawcalls en una frase": "El cambio en el estado del dibujo es la razón principal del aumento de los drawcalls. Cocoscreator cree que los componentes de renderizado deben renderizarse primero en forma de zindex, y cocoscreator cree que el mismo material se puede renderizar en lotes, por lo tanto, los nodos de renderizado consecutivos con el mismo material se pueden fusionar y renderizar para reducir las llamadas a sorteos

"Continuo:"

1. mismo nivel, el orden de adición es adyacente,

2. No hay componentes de representación de otros materiales en la capa intermedia y los niveles son diferentes. Por ejemplo, el nivel de A es 1 by el. El nivel de A es 3. No hay componentes de renderizado de otros materiales entre los niveles 1-3.

" Factores de drawcall: "

1, nivel de nodo de renderizado (zindex)

ZIndex es la jerarquía de nodos y es el atributo clave utilizado para ordenar los nodos. Determina los nodos hermanos. La jerarquía entre ellos y quién tiene prioridad en la representación.

1) El valor de zIndex es. entre cc.macro.M IN_ZINDEX y cc.macro.MAX_ZINDEX

Es decir, entre-math.pow(2,15) y math.pow(2,15)-1

<. p>En la operación real, generalmente es de -1 a n, y generalmente no excede 1000. p>

2) Los nodos principales se ordenan principalmente según su índice z y el orden de adición. Los nodos con índice z más alto se ordenarán más adelante. (El gráfico renderizado primero está debajo del gráfico renderizado después. Si el zIndex es el mismo, el nodo agregado primero se representará antes que el otro nodo, lo que significa que las dos capas están en el mismo nivel).

El primer nodo agregado se representa primero y los resultados se muestran debajo del gráfico que se representa más adelante.

3) El orden de los nodos secundarios determina su orden de representación. Los nodos principales siempre se representan antes que todos los nodos secundarios.

4) El valor zindex predeterminado de un nodo o nodo principal en el lienzo es 0.

5) Otro factor que determina el nivel de nodo es siblingIndex, cuyo peso es menor que zIndex. Cuando editamos el punto de préstamo en el editor, el zIndex es el mismo entre los nodos hermanos. ¿Por qué uno renderiza primero y el otro después? Debido a que el índice de hermanos es diferente, el índice de hermanos en el frente es más pequeño, el índice de hermanos en la parte posterior es más grande y el nivel de selección final está justo por encima del anterior. En otras palabras, zindex juega un papel decisivo. Si el zIndex es el mismo, compare el siblingIndex para determinar el nivel final.

"2. Material"

1) Textura (mapa)

2) Shander: Renderer, un programa que puede entender la correspondencia entre puntos y colores, simple En otras palabras, es la forma de dibujar)

Solo se pueden procesar por lotes objetos con el mismo material. Por lo tanto, si desea obtener un buen efecto por lotes, debe reutilizar materiales y objetos en el programa tanto como sea posible.

Si tus dos materiales solo tienen texturas diferentes, puedes usar el empalme de texturas para combinar las dos texturas en una textura grande. Una vez que se junta la textura, puedes usar este único material para reemplazar los dos primeros materiales.

"Qué componentes de renderizado no se renderizarán"

Cocoscreator cree que la transparencia del componente de renderizado == 0. O active = false no se representará.