Sketchando..!
Hola Sketchero por si no lo sabias nos estamos mudando a http://www.sketchando.net , dentro de poco en este foro no podrán iniciarse nuevos temas, por lo que te solicitamos, aunque ya estes registrado aca, te vuelvas a inscribir en el nuevo foro.

Foro No oficial de usuarios hispanos de SketchUp

Google SketchUp & SketchUp Pro 7 Bible
SketchUp del futuro
Concurso Express 15-30 Agosto 2010 Requerimientos en el foro Participando..!
Crea luces facilmente en pocos pasos (Post-Producción)
Arboles y Arbustos calidad profesional
V ray manual ESPAÑOL
FreeScale 2.0 - New Transformations
SCF ToolBar (excelente conjunto de herramientas para arquitectura)
Herramienta Archiland
4258 componentes para SketchUp Low-poly

No estás conectado. Conéctate o registrate

Colocar imagen en curva

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 Colocar imagen en curva el Vie 12 Mar 2010, 11:42

bartsurilla


Observador
Observador
Hola a todos.
Espero haber colocado bien la imagen para que podáis verla, si no es así perdonadme y volveré a intentarlo. El problema que tengo es que necesito colocar la imagen de la parte derecha (los ciclistas) en la estructura con forma curvada. Estas curvas no son de una sola pieza, sino que están formadas por varios paneles. La foto consigo colocarla como textura pero me queda muy ampliada, de hecho lo que se ve en toda la superficie es una parte del suelo, y necesito poder redimensionarla para adaptarla al tamaño aunque me quede deformada. He probado a modificarla desde Photoshop aplicándole diferentes tamaños, pero siempre me sale igual. Todo lo que he visto por ahí en tutoriales indica que las texturas solo pueden modificarse sobre plano, pero alguien conoce alguna manera de poder hacerlo???
gracias

[img][/img]



Última edición por bartsurilla el Lun 15 Mar 2010, 10:33, editado 1 vez

Ver perfil de usuario

2 Re: Colocar imagen en curva el Vie 12 Mar 2010, 12:22

inakim


Super Sketchero..!
Super Sketchero..!
Prueba con este plugin...UVtools.rb...copia el texto de abajo(en negrita) y guardalo con el nombre de UVtools.rb, tambien puedes probar proyectando la textura (en el menu de la textura y ademas mira tambien suvizar aristas coplanarias. Very Happy

require 'sketchup.rb'


if( not file_loaded?("UVtools.rb") )

UI.add_context_menu_handler {|menu|
ents=Sketchup.active_model.selection
sel=Sketchup.active_model.selection.first
sub=menu.add_submenu("UV Tools")
sub.add_item("Spherical Map") {(UVtools.new.spherical_map(ents))}
sub.add_item("Cylindrical Map") {(UVtools.new.cylindrical_map(ents))}
}

end
file_loaded("UVtools.rb")

class UVtools

@points=[]
@box=nil


######################
def get_bounds(ents)


all_points=[]
ents.each {|e|
if e.class==Sketchup::Face
all_points.push(e.vertices)
end
}

return if all_points.empty?

all_points.flatten!
all_points.uniq!

box=Geom::BoundingBox.new
all_points.each {|v| box.add(v.position)}

@box=box

end

######################
def get_center(ents) #returns the bounding box center of the selection

get_bounds(ents)
return @box.center

end

######################
def get_zmax_min(ents)

get_bounds(ents)
return [@box.max.z,@box.min.z]

end
########################
def get_spherical_uv(p,c) #p is the point we want to get the uvs for, c is the spherical center

pi=Math::PI
dx=p.x-c.x
dy=p.y-c.y
dz=p.z-c.z

theta=Math.acos(dz/(Math.sqrt(dx**2+dy**2+dz**2)))
phi=Math.atan2(dy,dx)

v=1.0-(theta/pi)

if phi<0.0
phi=2*pi+phi
end

u=(phi/(2*pi))

return [u,v,0.0]

end

########################
def get_cylindrical_uv(p,z_extents) #p is the point we want to get the uvs for, ymin is the base of the cylinder

c=Geom::Point3d.new(@box.center)

pi=Math::PI
dx=p.x-c.x
dy=p.y-c.y

zmax=z_extents[0]
zmin=z_extents[1]
dz=(p.z-zmin)/(zmax-zmin)


phi=Math.atan2(dy,dx)

v=dz

if phi<0.0
phi=2*pi+phi
#phi=-phi
end

u=phi/(2*pi)

return [u,v,0.0]

end

##########################
def validate_uvs(uvs)

u_arr=uvs.collect {|p| p.x}
u_max=u_arr.max
u_arr.each_index {|i|
if u_arr[i]!=u_max
if (u_max-u_arr[i])>0.8 #check for overlap
#p "overlapped"
u_arr[i]+=1.0
end
end
}

uvs.each_index {|i| uvs[i].x=u_arr[i]} #modify the original uv array to fix the overlap

return uvs

end

##############################
def resize_uvs(uvs,mat)

tex=mat.texture
return if tex==nil

h=tex.height
w=tex.width

new_uvs=[]
uvs.each_index {|i|
new_uvs[i]=Geom::Point3d.new(0,0,0)
new_uvs[i].x=uvs[i].x*w
new_uvs[i].y=uvs[i].y*h
new_uvs[i].z=uvs[i].z
}

return new_uvs

end


#########################
def spherical_map(faces) #performs spherical mapping

Sketchup.active_model.start_operation("Spherical Map")
faces=get_faces(faces)
origin=get_center(faces)
p origin

faces.each {|f|
material=f.material
verts=f.vertices
pts=verts.collect {|v| v.position}
uvs=pts.collect {|p| get_spherical_uv(p,origin)}
uvs=validate_uvs(uvs) #fixes the 'overlap' problem
#uvs=resize_uvs(uvs,material) #resize the uvs based on texture size
if pts.length==3
pt_array=[pts[0],uvs[0],pts[1],uvs[1],pts[2],uvs[2]]
else
pt_array=[pts[0],uvs[0],pts[1],uvs[1],pts[2],uvs[2],pts[3],uvs[3]]
end
begin
f.position_material(material,pt_array,true)
#f.position_material(material,pt_array,false)
rescue
p pt_array
raise
end

}

Sketchup.active_model.commit_operation
end

#########################
def cylindrical_map(faces) #performs spherical mapping

Sketchup.active_model.start_operation("Cylindrical Map")
faces=get_faces(faces)
z_extents=get_zmax_min(faces)

faces.each {|f|
material=f.material
verts=f.vertices
pts=verts.collect {|v| v.position}
uvs=pts.collect {|p| get_cylindrical_uv(p,z_extents)}
uvs=validate_uvs(uvs) #fixes the 'overlap' problem
#uvs=resize_uvs(uvs,material) #resize the uvs based on texture size
if pts.length==3
pt_array=[pts[0],uvs[0],pts[1],uvs[1],pts[2],uvs[2]]
else
pt_array=[pts[0],uvs[0],pts[1],uvs[1],pts[2],uvs[2],pts[3],uvs[3]]
end
begin
f.position_material(material,pt_array,true)
#f.position_material(material,pt_array,false)
rescue
p pt_array
raise
end

}

Sketchup.active_model.commit_operation
end

############################
def get_faces(ents)

return ents.find_all {|e| e.class==Sketchup::Face}

end




end #class

Ver perfil de usuario

3 Re: Colocar imagen en curva el Lun 15 Mar 2010, 11:18

bartsurilla


Observador
Observador
Gracias por el interés inakim pero lo del plugin UVTtools no me funciona. No se si lo habré hecho bien, pero sólo se me ocurrió pegar el texto en textedit y añadir la extensión, pero al abrir el programa me sale este mensaje:
Error Loading File UVtools.rb
/Library/Application Support/Google SketchUp 7/SketchUp/Plugins/UVtools.rb:1: parse error, unexpected $undefined., expecting '}'
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480
^

En cuanto a lo de proyectar la textura, y lo de aristas coplanarias, una vez que tengo la imagen colocada no me aparecen activos.
También he probado para hacerlo en un tamaño más grande (ya que no puedo reducir la imagen, amplio la estructura) pero me sale esto que os envío.

Por favor, agradecería cualquier ayuda, ya que si no puedo colocar imágenes de esta manera, Sketchup no me sirve para nada, y es una lástima porque me viene estupendamente para todo lo demás por su sencillez.

Ver perfil de usuario

4 Re: Colocar imagen en curva el Lun 15 Mar 2010, 11:55

Ibon


Moderador
Moderador
Yo lo haría sin ayuda de Plugins, al método tradicional:

Paso Nº 1: Elegir la imágen y crear un Nuevo material con ella. Para este ejemplo he usado un render que tan amablemente nos acaba de regalar pedro Wink


Paso Nº 2: Crear la superficie curvada




Paso Nº 3: Hacer visible la geometría oculta (Ver --> Geometría Oculta) y aplicar el material a una de las caras.




Paso Nº 4: Situarla y escalarla al gusto (hacer click con el botón derecho sobre la cara y elegir "Textura --> Situar")




Paso Nº 5: Convertir la textura en Proyectada (hacer click con el botón derecho sobre la cara y elegir "Textura --> Proyectada")




Paso Nº 6: Aquí está la clave. Con el cuentagotas, seleccionar la textura proyectada, después cultar la geometría oculta y finalmente aplicar el material a la superficie. Si no ha quedado a tu gusto, recoloca la textura en alguna de las caras y repite el proceso.

Ver perfil de usuario

5 Re: Colocar imagen en curva el Lun 15 Mar 2010, 13:30

setesur1


Super Sketchero..!
Super Sketchero..!
Esto es convertir las cosas que creemos que son muy dificiles, en muy fáciles.

Muchas gracias por el Tutorial.

Un saludo. cheers drunken cheers

Ver perfil de usuario

6 Re: Colocar imagen en curva el Lun 15 Mar 2010, 13:39

Ibon


Moderador
Moderador
La única pega es que si el ángulo que quieres cubrir es demasiado amplio, la imágen comienza a deformarse. Solución: Proyectar la imágen dependiendo de la cámara Wink

Ver perfil de usuario

7 Re: Colocar imagen en curva el Mar 16 Mar 2010, 04:45

bartsurilla


Observador
Observador
Ibon escribió:La única pega es que si el ángulo que quieres cubrir es demasiado amplio, la imágen comienza a deformarse. Solución: Proyectar la imágen dependiendo de la cámara Wink

Aun no he conseguido dejarla como a mi me parecería perfecta, pero ya tengo un camino por donde tirar para seguir haciendo pruebas.
De veras que no se como agradecértelo.

Ver perfil de usuario

8 Re: Colocar imagen en curva el Mar 16 Mar 2010, 05:52

Ibon


Moderador
Moderador
De nada hombre! (o mujer), para eso estamos Wink

Ver perfil de usuario

9 Re: Colocar imagen en curva el Mar 16 Mar 2010, 08:50

franciscojesuli


Super Sketchero..!
Super Sketchero..!
como siempre muy atento y todo muy bien explicado, es un gusto tenerte por aqui ibon!!un abrazo!

Ver perfil de usuario http://www.frankruizdesign.com/

10 Re: Colocar imagen en curva el Miér 17 Mar 2010, 21:27

inside760li


Sketchero..!
Sketchero..!
Ibon escribió:Yo lo haría sin ayuda de Plugins, al método tradicional:

Paso Nº 1: Elegir la imágen y crear un Nuevo material con ella. Para este ejemplo he usado un render que tan amablemente nos acaba de regalar pedro Wink


Paso Nº 2: Crear la superficie curvada




Paso Nº 3: Hacer visible la geometría oculta (Ver --> Geometría Oculta) y aplicar el material a una de las caras.




Paso Nº 4: Situarla y escalarla al gusto (hacer click con el botón derecho sobre la cara y elegir "Textura --> Situar")




Paso Nº 5: Convertir la textura en Proyectada (hacer click con el botón derecho sobre la cara y elegir "Textura --> Proyectada")




Paso Nº 6: Aquí está la clave. Con el cuentagotas, seleccionar la textura proyectada, después cultar la geometría oculta y finalmente aplicar el material a la superficie. Si no ha quedado a tu gusto, recoloca la textura en alguna de las caras y repite el proceso.


Sos boludo, sabelo ... ! Basketball Basketball Basketball

Ver perfil de usuario

11 Re: Colocar imagen en curva el Jue 18 Mar 2010, 03:18

Ibon


Moderador
Moderador
e nada chicos, para lo que queráis!

Ver perfil de usuario

12 Re: Colocar imagen en curva el Sáb 20 Mar 2010, 22:26

_GUARIN_


Sketchero..!
Sketchero..!
yo tengo el mismo problema voy a ensayar aver como me va gracias cheers

Ver perfil de usuario

13 Re: Colocar imagen en curva el Dom 21 Mar 2010, 12:25

_GUARIN_


Sketchero..!
Sketchero..!
cheers cheers cheers llevo buscando la respuesta a este tema meses, ibon mil gracias, si me funciono, muchas gracias amigo. drunken

Ver perfil de usuario

14 Re: Colocar imagen en curva el Lun 22 Mar 2010, 08:12

marcela torre


Sketchero..!
Sketchero..!
Bravooo, bravoo!!!, geniosss

Marce

Ver perfil de usuario

15 Re: Colocar imagen en curva el Lun 22 Mar 2010, 08:30

chabri


Super Sketchero..!
Super Sketchero..!
wuau! no sbaes la de veces que lo he intentado pero nunca habia encontrado un tutorial jejeje graciassssss!!!

Ver perfil de usuario http://www.esimaginacion.com

16 Hola el Vie 16 Abr 2010, 00:11

Gercastel


Observador
Observador
Que es el cuentagotas? no lo entiendo

Ver perfil de usuario

17 Re: Colocar imagen en curva el Mar 20 Abr 2010, 23:31

cajon49


Super Sketchero..!
Super Sketchero..!
Gracias, Ibon! como siempre atento, me acabas de resolver un problema que tenía con una bandera.

Ver perfil de usuario

18 Re: Colocar imagen en curva el Vie 30 Abr 2010, 10:54

bartsurilla


Observador
Observador
Gercastel escribió:Que es el cuentagotas? no lo entiendo

Por lo que yo he visto hasta ahora es una herramienta que sirve para seleccionar texturas o colores ya aplicados a objetos para tomarlos como referencia y aplicarlos a otros objetos.
Para hacer que aparezca (cosa que a mi me costó encontrar) tienes que tener seleccionado el bote de pintura y pulsar "comando", entonces el bote de pintura se sustituye por un cuentagotas. Eso es en mac, en pc no se si será también con "comando".

Ver perfil de usuario

19 Re: Colocar imagen en curva Hoy a las 01:26

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.