Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Igor

#1
hola
 
si estas usando el material standard tiene reflections, y refleja el skybox... desactibale los reflejos y quedara mas blanco....
 
y ademas si clickaa en la directionalLight si te fijas trae un color amarillento por defecto (como la luz del sol), ponlo tambien en blanco
#2
Proyectos / YourCity Racing
Febrero 26, 2020, 11:31:49 AM
Cita de: J Montes date=1582687205No conocía los triplanar shaders, muy interesante, pero tienes razón, creo que no es lo que estamos buscando.
   
   
      He aplicado el tuyo ¡muchas gracias! (imagen debajo), pero se ve raro. Supongo que mis normales no están correctas (tengo que revisar esto, creo que el importador las está suavizando :/).
   
   
      De todas formas, creo que calcularé las coordenadas UV en el generador, supongo que eso engorda los vertex buffers pero tendré más control ¿no? ¿es importante? ¿debería preferir usar un shader cuando sea posible?.
   
   
      
   
   
       
   


hola
 
si, creo que eso que pasa sera por las "normal" es lo que he usado para que el shader calcule como colocar la texturas, igual estan suavizadas como dices.
 
no se si usas "mesh.RecalculateNormals()" al crear el mesh de los edificios.... pero creo que eso deberia ponerte las normals correctas...
 
tambien se podria hacer que el shader calcule las normas... si quieres lo intento
#3
Otros / Banderas en Unity
Febrero 25, 2020, 10:32:48 AM
hola
 
Cita de: Alvaro95 date=1582586841Gracias chicos!!
   
   
      Al final me decante por Cloth aunque fue algo difícil de lograr una animación realista, pero sin duda la mejor opcion!
   


el componente Cloth consume muchos recursos.... pero es realista... y puedes interactuar con ella... es decir, puedes hacer que otros objetos "choquen" con la tela y la mueban....
 
pero si no es necesario... o si quieres poner muchas banderas lo mejor seria usar un shader que haga el effecto...
 
si quieres te puedo hacer uno, pero necesito ver como es la bandera, como quieres que se mueva, donde tiene el pivot (porejemplo si es una bandera lateral el pivot es mejor que este el un lado, en el lado que no se mueve, en el que este el "mastil", el "palo")
 
si quieres pon unas fotos de como te ha quedado y te hago un shader que haga algo parecido, (para que el shader funcione el modelo de la bandera debe estar "tieso", "rigido", ser un plano, y el shader movera sus vertices)
#4
Scripting / Subir Plataforma
Febrero 25, 2020, 10:19:32 AM
vas a tener que usar mas raycasts...
 
porejemplo para ver si hay otra plataforma cercana y puede pasar a ella, cuando detectes que la plataforma a la que estas agarrado se acaba (por la derecha, como en tu imagen) tendras que echar otro rayo hacia la derecha para ver si hay otra plataforma cercana (a la distancia a la que llegue el player).... en caso de que si haya "algo" tendras que comprobar (con mas rayos) que esta alineada con la tuya y que tiene la misma altura... osea que puedes "saltar" a ella...
 
y para cada caso tendras que usar varios rayo, pensando como los lanzas (donde estan puestos (los rayos)) para detectar lo que quieres detectar...
#5
Scripting / Marching Cubes
Febrero 22, 2020, 09:11:41 PM
Sebastian Lauge es un fiera!
 
yo me he visto varios "tutoriales" suyos... pero justo ese no... igual me pongo con ello...
#6
Scripting / Clamp y movimiento
Febrero 21, 2020, 09:05:01 PM
a ver...
 
Vector3 deve tener 3 valores como su nombre indica, ambos os estais liando...
 

//porejemplo:
transform.position = new Vector3(x, y, z);

 
ademas estas poniendo
 

transform.position = new Vector3(0, y);
//y justo despues pones:
transform.position = new Vector3(0, P);
       
//osea, primero dices que la posicion es una y justo despues le dices que es otra
//eso esta mal.... porque lo segundo hace que lo primero no valga para nada

 
para hacer lo que quieres hacer en Update valdria solo con dos lineas
 

P += (Input.GetAxis("Mouse Y") / 4);
transform.position = new Vector3(0, Mathf.Clamp(P,-10, 10), 0);
//primer valor(x) es cero, el segundo(y) es "clamp" de "P", y en tercero(z) es cero

 
luego ademas estas poniendo la variable "P" en mayuscula, cuando deveria ser en minuscula...
 
las variables van en minusculas.... y las "classes" y las funciones van en Mayuscula....
 

//.... y el movimiento que vas a lograr con esta linea
P += (Input.GetAxis("Mouse Y") / 4);
//me parece que no va a ser el que buscas...

 
 
#7
sphere cast es como ray cast pero dandole un radio
 

RaycastHit hit;
if (Physics.SphereCast(origen, radio, direccion, out hit, distancia)) {
    //ha chocado con algo, entonces haces algo
    //porejemplo:
    transform.position = hit.point;
}

 
la variable "hit" almacena toda la informacion del "impacto": 
 
-point: el lugar del impacto
 
-normal: la "normal" del impacto (hacia donde apunta la superficie, sirve porehemplo para saber si es suelo, pared, techo... y para colocar el objeto añejado del punto de impacto... y otras cosas)
 
-distance: la distancia que ha recorrido el "rayo" antes de chocar (sirve para porejemplo poner el player en el lugar de origem del rayo y hacer que havance esa distancia y entonces el player estara justo el la posicion deseada (al lado de la pared-suelo))
 
-"hit" puede decirte tbien el nombre del objeto con el que ha chocado y otras muchas cosas...
 
puedes hacer que compruebe colisiones solo con una capa (layer) especifica... o que ignore una capa especifica
 

LayerMask layerm = (1<<8);
//comprobar solo contra la capa numero 8
LayerMask layerm = ~(1<<6);
//comprobar contra todas las capas menos la 6
RaycastHit hit;
if (Physics.SphereCast(origen, radio, direccion, out hit, distacia, layerm)){
    //ha chocado con las capas seleccionadas, hacer algo
}

 
 
#8
hola
 
yo suelo hacer siempre las fisicas con raycast (en realidad lo hago con sphere cast)
 
si sabes donde estaba el player en el frame anterior (guardando el valor) y donde esta ahora, entonces sabes la direccion y la distancia del "rayo".... y con el sphereCast pues ya calculo el choque e incluso el deslizamiento por pared... aunque si es verdad que a veces lo combino con un rigidBody (pero sin gravedad y con los ejesDeRotacion bloqueados)
 
pero a veces lo hago unicamente con raycast (sphereCast)
#9
Proyectos / YourCity Racing
Febrero 19, 2020, 01:36:47 AM
hola!
 
veo que sigues trabajando en el proyecto XD
 
se me olvido contestarte
 
Cita de: J Montes date=1581546659¿Cómo se haría para, teniendo en cuenta si el triángulo es vertical u horizontal, asignar UV correctas en un vertex shader? ¿Es mejor usar un shader que incluir las coordenadas UV en el modelo? Si tienes un ejemplo lo pruebo O:)
   


para saber si es horizontal o vertical se haria algo tipo "triplanar shader", si quieres te hago que sea asi.
 
pero de momento te he hecho un shader (especialmente para ti) que te crea las UVs directamente (en el shader), y te las ajustaria para que la textura no se corte indevidamente (osea siempre el numero de repeticiones sera un numero entero (int))
 
ponle una textura de UNA ventana, y te la repetira un numero de veces X (int) pero siempre intentara mantener el mismo tamaño de ventana, entonces te rapetira mas o menos veces la ventana parra llenar el poligono. osea, contra mas grande sea el poligono mas ventanas pone... contra mas alto, mas "pisos" pone...
 
puedes poner las medidas de cada "altura" (piso) del edificio (he puesto 3 metros, osea que cada 3 metros te hace una copia de la textura)  (siempre te hara un numero de copias entero, no te "partira" los pisos, las ventanas) y tambien poner la medida de el "ancho" de la textura (de la ventana/habitacion/lo que sea)
 
(son las variable vertical size (x) y horizontal size (y))
 
he puesto para que tambien puedas ponerle una BumpMap y un SpecularMap (para el specularMap haz una copia de la textura de la ventana y pon donde sea cristal blanco y en el resto negro, y en unity en el inspector en la textura donde pone "Alpha Source" le pones "from grey scale") y asi te hara reflejos solo donde la texura sea "cristal"...
 
aqui tienes el shader.
 

Shader "Custom/buildings 1" {
Properties {
   _Color ("Color", Color) = (1,1,1,1)
   _MainTex ("Albedo (RGB)", 2D) = "white" {}
   
   _BumpMap("Normal Map", 2D) = "bump" {}
   _SpecularColor("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
   _SpecMap("Specular Map (alpha)", 2D) = "white" {}
   _Glossiness("Smoothness", Range(0,1)) = 0.5
   _SizeY("vertical Size", Float) = 3
   _SizeX("horizontal Size", Float) = 6
}
SubShader {
   Tags { "RenderType"="Opaque" }
   LOD 200
   CGPROGRAM
   // Physically based Standard lighting model, and enable shadows on all light types
   #pragma surface surf StandardSpecular fullforwardshadows vertex:vert
   // Use shader model 3.0 target, to get nicer looking lighting
   #pragma target 3.0
   sampler2D _MainTex;
   sampler2D _BumpMap;
   sampler2D _SpecMap;
 
   struct Input {
      float2 uv_MainTex;
      //float3 worldPos;
      //float3 worldNormal;
      //float2 auxUV;
   };
   
   float _SizeX;
   float _SizeY;
   half _Glossiness;
   half _Metallic;
   fixed4 _Color;
   fixed3 _SpecularColor;
   void vert(inout appdata_full v) {
      //float3 pos = UnityObjectToClipPos(v.vertex);
      float3 pos = mul(_Object2World, v.vertex).xyz;
      float3 vUp = float3(0, 1, 0);
      float3 vNormal = mul(_Object2World, float4(v.normal, 0)).xyz;
      //float3 vNormal = UnityObjectToWorldNormal(v.normal);
      float3 vTang = normalize(cross(vNormal, vUp));
      float vDist_x = dot(vTang, pos);
      float vDist_y = dot(vUp, pos);
      float uv_x = (int)(vDist_x / _SizeX);
      float uv_y = (int)(vDist_y / _SizeY);
      v.texcoord = float4(uv_x, uv_y, 1, 1);
   }
   // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
   // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
   // #pragma instancing_options assumeuniformscaling
   UNITY_INSTANCING_BUFFER_START(Props)
      // put more per-instance properties here
   UNITY_INSTANCING_BUFFER_END(Props)
   void surf (Input IN, inout SurfaceOutputStandardSpecular o) {
      // Albedo comes from a texture tinted by color
      
      fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
      o.Albedo = c.rgb;
      // Metallic and smoothness come from slider variables
      half spec = tex2D(_SpecMap, IN.uv_MainTex).a;
      o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_MainTex));
      o.Specular = _SpecularColor * spec;
      o.Smoothness = _Glossiness * spec;
      o.Alpha = c.a;
   }
   ENDCG
}
FallBack "Diffuse"
}

 
 
 
puedes usa una textura tipo algo asi para probar: 
 

 
o algo asi:
 

 
si necesitas que te explique algo mas o que te cambie cosas dime.
 
el shader lo he hecho para probar si te sirve algo asi... a ver si te gusta...
 
se le puede añadar cosas y funcionalidades... tambien puedo intentar hacer, como te dije, que el primer piso sea una textura diferente (comercios/portales) si quieres te lo hago tambien...
 
saludos.
#10
Otros / Banderas en Unity
Febrero 13, 2020, 10:11:41 AM
Cita de: francoe1 date=1581584865Creo que para hacer que el plano ondee no tiene mucho sentido utilizar físicas de telas, la forma mas facil seria animar los vértices de un plano en cualquier editor  3d o crear modificar los vértices en runtime según sea requerido.
   


...o con un shader que modifique los vertices... 
#11
Offtopic / Documentación (html) online a offline
Febrero 11, 2020, 10:49:25 PM
Cita de: lightbug date=1581456678off kors
   


donde y cuando quieras
#12
Scripting / 3 objetos random
Febrero 11, 2020, 11:57:41 AM
en cuanto a tiempo de ejecucion sera mas rapida la opcion que te he puesto en codigo (la de los "if") ...pero queda mas chula y entendible la de la "list"
#13
Proyectos / YourCity Racing
Febrero 11, 2020, 11:45:36 AM
hola! quedan bien las texturillas...
 
quizas los edificios puedas usar un shader especial que detecte los vertices y te auto ajuste la textura dependiendo de las dimensiones de los "planos" (por la posicion de los vertices) para hacer que los edificios tengan las ventanas correctas (en altura y anchura) (cada 3metros de altura poner un piso (una fila de ventanas) pero abajo, en la primera fila, en el bajo, poner otra textura tipo tiendas y portales) 
 
si quieres te lo hago
#14
Interfaz / Duda resoluciones - Canvas Scaler
Febrero 11, 2020, 11:39:42 AM
porque el canvas tiene dentro otro canvas?
 
creo que la escala de um canvas podria afectar al otro...
 
no seria mejor que el canvas tubiera varios paneles dentro?
 
puedes ocultar los objetos mas lejos, o puedes activar/desactivar por script su Renderer, Image, o lo que sea...
 
puedes saber el screen.height y re_escalar el panel (o poner unos paneles o dos "image" negras arriba y abajo)...
 
hay mil formas de hacerlo
#15
Otros / Build Setting no compila?
Febrero 11, 2020, 11:32:18 AM
Cita de: francoe1 date=1581375748Remplaza únicamente el GameObject.Find por un reference estática a la instancia del jugador, cuánto menos cosas dejes al azar mejor funcionará. 
   


si, seguramente lo que falla es el "Find"
 
haz que la variable player sea "public" y asigna el objeto desde el editor