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

190
Views
Problema de textura múltiple ThreeJS con ShaderMaterial en iOS

Necesito ayuda con shaders en Threejs. Tengo un avión donde debo tener una mezcla entre 10 texturas diferentes; ahora uso ShaderMaterial y paso todas las texturas que luego se usan para combinar. Aquí mi código Fragment Shader

 vec3 CFull = texture2D(tFull, vUv).rgb; vec3 CIndustria = texture2D(tIndustria, vUv ).rgb; vec3 CCave = texture2D(tCave, vUv).rgb; vec3 CRifiuti = texture2D(tRifiuti, vUv).rgb; vec3 CEdile = texture2D(tEdile, vUv).rgb; vec3 CEventi = texture2D(tEventi, vUv).rgb; vec3 CMarine = texture2D(tMarine, vUv).rgb; vec3 COil = texture2D(tOil, vUv).rgb; vec3 CStrade = texture2D(tStrade, vUv).rgb; vec3 CVerde = texture2D(tVerde, vUv).rgb; c = CFull * CIndustria * CCave * CRifiuti * CEdile * CEventi * CMarine * COil * CStrade * CVerde; gl_FragColor = vec4(c, 1.0);

Funciona bien en Android o escritorio, pero en iOS no funciona. Si uso solo textura 4/5, también funciona en iOS ...

¿Tal vez no funciona porque es demasiado pesado? ¿Tienes algún consejo para optimizar mi código? (u otras soluciones)

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

0

La especificación WebGL requiere que el navegador admita al menos 8 unidades de textura combinadas . Supongo que su dispositivo iOS cumple con el requisito mínimo de 8, pero está solicitando 10.

Puede visitar webglreport.com en su dispositivo iOS y buscar "Texturas > Unidades de imagen de textura combinadas máximas" para ver cuál es su compatibilidad máxima. Por ejemplo, mi computadora de escritorio permite hasta 32, pero el límite de mi iPhone es más bajo.

ingrese la descripción de la imagen aquí

Si todo lo que está haciendo con las texturas es multiplicarlas, puede usar un contexto de <canvas> 2D, combinarlas allí y luego usar THREE.CanvasTexture para convertir el lienzo en capas en una sola textura que puede usar en Three.js

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!