Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

(SOLUCIONADO) Rendimiento "calcular distancias vs RayCast"

Iniciado por ftejada, Marzo 27, 2016, 02:12:01 PM

Tema anterior - Siguiente tema
Marzo 27, 2016, 02:12:01 PM Ultima modificación: Marzo 29, 2016, 04:34:50 AM por ftejada
Hola gente!!Quizas sea una pregunta algo absurda, pero necesito consejo para aclarar esta duda. Tengo 15 coches en pantalla y en cada frame deben ir calculando cada uno varias distancias. Tengo entendido que calcular distancias es algo que consume bastante rendimiento por el tema de la raiz cuadrada.Mi pregunta es ¿qué consume mas rendimiento, calcular 10 distancia/s o calcular ese mismo numero de veces un raycast? Imagino que consumirá más el raycast ya que aparte de calcular la distancia, calcula otros datos.Hay alguna manera de que calcular distancias no sea tan costosa en rendimiento???Perdonadme si he dicho alguna burrada, pero necesito consejo para poder calcular muchas distancias por frame con el menor impacto posible en el rendimiento y por eso estoy recopilando información Saludos y gracias por adelantado.

solo 10? eso no es nada xDde todas formas es mas rapido calcular vector3.distance q un raycast, xq el raycast tiene que probar objetos en "toda" la escena fisica... bueno no toda xq se parte en grupos, pero ya entiendes

Cita de: Braltor date=1459083384" data-ipsquote="" data-cite="Braltor" class="ipsQuotesolo 10? eso no es nada xDde todas formas es mas rapido calcular vector3.distance q un raycast, xq el raycast tiene que probar objetos en "toda" la escena fisica... bueno no toda xq se parte en grupos, pero ya entiendes
Gracias Braltor. Lo de las 10 distancias lo he dicho como ejemplo. Realmente son varias distancias (5 aprox) por cada coche... es decir 5*15 = 75 dist aprox Saludos

igual creo q no se notara hasta los 1000 raycast o mastomando en cuenta q los coches son rectangulares, distance es mas rapido pero te da una distacia "circular" desde el pivote del objeto... mientras q raycast te puede decir q tan cerca esta un chasis de otro... depende de la precision q quieras

Si solo quieres comparar distancias lo mas optimo es realizar la resta de los dos vector y hacer el sqrMagnitude del resultado. Recuerda que Vector3.Distance(a,b) = (a-b).magnitude y sqrMagnitude  es el magnitude  sin realizar la raiz cuadrada. Ten en cuenta que la distancia que vas a tener es la distancia al cuadrado de la real.

Gracias a ambos por responder. Es lo que imaginaba y doy el asunto por zanjado Saludos

Etiquetas: