Hola que tal gente amante de blender, aquí estoy nuevamente despues de muchisisisimo tiempo, he regresado a blender nuevamente con mi proyecto que había dejado a un lado por cuestiones personales de estudio, trabajo, etc.
Esta vez quiero recurrir a la ayuda de expertos en programación Python y GLSL en Blender Game Engine
Lo primero que quiero consultar es:
Niebla de Guerra en un juego de RTS bélico de un solo personaje.
Eso mismo, estoy tratando de encontrar un método eficaz de como crear un FOG OF WAR como los que hacen en unity, de hecho parece sencillo hacerlo en ese game engine pero cuando trato de aplicarlo de la misma manera en el BGE me resulta complicado. ¿Se puede hacer mediante GLSL?¿Se puede optimizar en python como se hace en Unity?
He visto a un men que creo que es de norteamerica que ha logrado un sistema de niebla para sus RTS el chico es bien capo! dejaré un video de lo que ha logrado en blender game engine: https://www.youtube.com/watch?v=SvHWYyZuYwU
La Niebla de Guerra luce bien, analize su código e hice algunas prácticas/experimentos aunque no esta optimizado ya que maneja 100% python, lo cual lo veo poco sutil no es como en Unity, me gustaría saber como puedo hacerlo mediante GLSL ya que al mandarlo a la gráfica sería lo correcto pero no tengo noción de como implementarlo por eso pido ayuda y me den algunos tips, consejos y algún que otro source de fog of war que hayan implementado en BGE o UPBGE por que recuerden que también han desarrollado otros game engine desde el Source de Blender.
Si más que decir dejo imagenes del RTS que estoy llevando a cabo. Saludos
https://ibb.co/dyQBPv
[Ayuda] Sistema de Niebla de Guerra
-
- Mensajes: 7
- Registrado: Vie Feb 22, 2013 6:19 am
- Nombre:
Re: [Ayuda] Sistema de Niebla de Guerra
Supongo que sabrás que la niebla se activa en el panel World, allí tienes Mist con unos cuantos de valores que puedes manejar a tu antojo y por supuesto animarlos.Si lo que quieres es una niebla cambiante dependiendo de la interactividad de la escena, quizá sería mejor con python, pero solo si no lo puedes hacer directamente.
-
- Mensajes: 7
- Registrado: Vie Feb 22, 2013 6:19 am
- Nombre:
Re: [Ayuda] Sistema de Niebla de Guerra
Hola Juani. Al fin alguien me responde u.u
Bueno verás si eso ya lo se, el problema es que no es exactamente lo que quiero ya que al mist me gustaría usarlo más que nada para neblina en el RTS así como simulación de que hace mucho frío o un rocío de llovizna.
Por ahí estuve encontrando algo como esto denominado KD-TREE
El problema de crear niebla de guerra con este Utilities es que no está del todo optimizado y relentiza mucho, esta muy bueno si... por que el cambio que hace es gradual y escalado al tiempo pero quisiera algo que corra más liviano con las mismas características o si hay alguna forma de optimizar este código. Estoy estudiando GLSL a full para sumergirme poco a poco en el mundo del Open GL pero bueno soy novato y la ayuda que pido aca en el foro es para que los que saben puedan darme una mano. Saludos
Bueno verás si eso ya lo se, el problema es que no es exactamente lo que quiero ya que al mist me gustaría usarlo más que nada para neblina en el RTS así como simulación de que hace mucho frío o un rocío de llovizna.
Por ahí estuve encontrando algo como esto denominado KD-TREE
Código: Seleccionar todo
import mathutils
# create a kd-tree from a mesh
from bpy import context
obj = context.object
# 3d cursor relative to the object data
co_find = context.scene.cursor_location * obj.matrix_world.inverted()
mesh = obj.data
size = len(mesh.vertices)
kd = mathutils.kdtree.KDTree(size)
for i, v in enumerate(mesh.vertices):
kd.insert(v.co, i)
kd.balance()
# Find the closest point to the center
co_find = (0.0, 0.0, 0.0)
co, index, dist = kd.find(co_find)
print("Close to center:", co, index, dist)
# Find the closest 10 points to the 3d cursor
print("Close 10 points")
for (co, index, dist) in kd.find_n(co_find, 10):
print(" ", co, index, dist)
# Find points within a radius of the 3d cursor
print("Close points within 0.5 distance")
co_find = context.scene.cursor_location
for (co, index, dist) in kd.find_range(co_find, 0.5):
print(" ", co, index, dist)
Re: [Ayuda] Sistema de Niebla de Guerra
Hola Sandokan 22, te mando un blend a ver si es esto lo que buscas mas o menos.Conforme muevas el cubo irán desapareciendo los planos que hacen como de techo, está exagerado, es una prueba.Saludos.
- Adjuntos
-
- RayCast.rar
- No lo puedo subir en .blend porque pesa 1 y pico Megas
- (95.34 KiB) Descargado 533 veces