Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
¿Cómo puedo codificar correctamente un GLTF y al mismo tiempo preservar la codificación de otras mallas y texturas?

Estoy creando una aplicación web ar que permite a los usuarios usar modelos de cabeza GLTF. ( https://www.head5.camera/ ) Para obtener la iluminación correcta en el GLTF, configuré renderer.outputEncoding = THREE.sRGBEncoding y esto funciona muy bien PERO también ajusta la iluminación de mi THREE.VideoTexture de mi Video en directo. ¿Hay alguna manera de codificar solo el GLTF pero preservar la codificación lineal? del resto de la escena. Cualquier ayuda es muy apreciada.

He aquí un ejemplo de lo que quiero decir:

Head5 foto con fondo claro

El fondo es más claro de lo que se supone que debe ser porque también se está codificando.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La codificación de salida es una configuración a nivel de renderizador y no se puede cambiar para objetos o materiales específicos. Debido a que solo puede tener un renderer.outputEncoding , es necesario que se ciña constantemente a un flujo de trabajo gamma o a un flujo de trabajo lineal ( lectura en segundo plano ).

THREE.GLTFLoader configura materiales y texturas asumiendo que está usando un flujo de trabajo lineal y eso requiere renderer.outputEncoding = THREE.sRGBEncoding (o procesamiento posterior equivalente). Parece que el resto de su escena está configurada para un flujo de trabajo gamma. Para que sean consistentes, probablemente querrá recorrer toda la escena (incluidos los glTF y cualquier otro modelo/textura) y configurar el espacio de color de las texturas relevantes.

 scene.traverse((object) => { if (object.isMesh) { const material = object.material; if (material.map) material.map.encoding = THREE.sRGBEncoding; if (material.emissiveMap) material.emissiveMap.encoding = THREE.sRGBEncoding; if (material.sheenColorMap) material.sheenColorMap.encoding = THREE.sRGBEncoding; if (material.specularColorMap) material.specularColorMap.encoding = THREE.sRGBEncoding; } });

Con esos cambios, la codificación de salida sRGB para un "flujo de trabajo lineal" se verá correcta. También puede hacer lo contrario, cambiar estas texturas a THREE.LinearEncoding , si desea utilizar la codificación de salida lineal para un "flujo de trabajo gamma". Eso podría ser más fácil si tiene muchos otros contenidos en la escena.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!