blender3d.cz
http://blender3d.cz/forum/

Generování meshe pro zeď
http://blender3d.cz/forum/viewtopic.php?f=7&t=2467
Stránka 11

Autor:  Ragnos [ úte úno 07, 2006 12:59 pm ]
Předmět příspěvku:  Generování meshe pro zeď

Tak jsem rozepsal svůj další skriptík, až ho vyladím tak ho semka pošlu.

Autor:  Ragnos [ úte úno 07, 2006 1:50 pm ]
Předmět příspěvku: 

tady je zdroják, něco málo přibylo... hlavně mě nebijte za tu přehlednost zdrojáku, jsem se k programování dostal téměř po roce.

Autor:  lz [ úte úno 07, 2006 7:18 pm ]
Předmět příspěvku: 

Zkoušel jsem to a funguje bez prblémů..chystám se něco tvořit do soutěže "město",tak to zkusim využít..

Autor:  lz [ úte úno 07, 2006 8:55 pm ]
Předmět příspěvku: 

ještě mě napadlo,že tenhle skript by se dal použít i na tvorbu dlažby apod..vyzkouším..

Autor:  Vybi [ úte úno 07, 2006 9:08 pm ]
Předmět příspěvku: 

Skvelej napad, potom staci dat nekterym vybranym cihlam extrude fractal a budou aji omlety, to se hodi!! :idea:

Autor:  Ragnos [ úte úno 07, 2006 9:28 pm ]
Předmět příspěvku: 

lz:tvorba podlahy mě nenapadla, ale nápad na generování zdi mi ležel pěkně dlouho v hlavě...

Autor:  D@vi$ [ stř úno 08, 2006 12:46 am ]
Předmět příspěvku: 

Zkus to upravit tak, aby se dalo nastavit, aby cyhly nezačínaly v jedné přímce, ale rozdíly byly na obou stranách. A pak aby to šlo dát do kruhu (věž apod..)

Autor:  AD [ stř úno 08, 2006 8:32 am ]
Předmět příspěvku: 

to není špatné ale ještě přidej i znepravidelnění vodorovné spáry...

Autor:  Ragnos [ ned úno 12, 2006 1:11 am ]
Předmět příspěvku: 

D@vi$: to by slo, mrknu na to

AD:no to je problem udelat ,aby se ty cihly neprekryvali

Autor:  AD [ ned úno 12, 2006 10:52 am ]
Předmět příspěvku: 

G_Taurus píše:
D@vi$: to by slo, mrknu na to

AD:no to je problem udelat ,aby se ty cihly neprekryvali


..........ty to zvládneš......stačilo by neměnit jejich velikost, jen náhodně upravit jejich polohu ...nahoru, dolů... v rozsahu spáry...

obdobně by to šlo uplatnit i na velikost cihly...

udělat to ve větším rozsahu je opravdu problém, to už by jsi vlastně dělal script na generování kamenné zdi :D ... ale tam by asi bylo snadnější jít cestou generování klikatých spár, pak přes extrude a uzavření ploch mezi nimi...

Autor:  Ragnos [ ned úno 12, 2006 1:57 pm ]
Předmět příspěvku: 

tak jsem dodelal rozhozeni cihel nahoru a dolu a aby nezacinala rada cihel v jedne rovine i kdyz nenavazuje na konec

Kód:
#!BPY

#********Importovani Knihoven****
import whrandom
import math

import Blender
from Blender import NMesh
from Blender.BGL import *
from Blender.Draw import *



#Events
EVENT_NOEVENT=1
EVENT_DRAW=2
EVENT_EXIT=3

#promenne pro slidery
cihel_x2= Create(15)
cihel_y2= Create(20)
xx_ofset2 = Create(0.1)
yy_ofset2 = Create(1.25)
faktor_x2 = Create(2.0)
faktor_y2 = Create(0.1)

cihla_vel_y2= Create(1.0)
cihla_vel_x2= Create(1.0)

pole_krok_z= Create(2.5)

pole_scale_z= Create(1.0)

pole_rot_z= Create(0)

pole_krok_rand_z= Create(0.0)

pole_scale_min_z= Create(1.0)
pole_scale_max_z= Create(1.0)

pole_rot_min_z= Create(0)
pole_rot_max_z= Create(0)

rankrokz = Create(0)






def cihly(cihel_x,cihel_y,yy_ofset,cihla_vel_y,cihla_vel_x,faktor_x,xx_ofset,faktor_y):
   me = NMesh.GetRaw()
   lastvelx=0
   for i2 in range(cihel_y):
      lastvelx=(whrandom.random()*faktor_x+cihla_vel_x)
      for i in range(cihel_x):
         randx=whrandom.random()
         finishvelx=randx*faktor_x+cihla_vel_x
         randy=whrandom.random()*faktor_y
         randy2=whrandom.random()*faktor_y
         
         v=NMesh.Vert(lastvelx,i2*yy_ofset+randy-randy2,0.0)
         me.verts.append(v)
         v=NMesh.Vert(lastvelx+finishvelx,cihla_vel_y+(i2*yy_ofset)+randy-randy2,0.0)
         me.verts.append(v)
         v=NMesh.Vert(lastvelx,cihla_vel_y+(i2*yy_ofset)+randy-randy2,0.0)
         me.verts.append(v)
         v=NMesh.Vert(lastvelx+finishvelx,i2*yy_ofset+randy-randy2,0.0)
         me.verts.append(v)
         lastvelx=lastvelx+finishvelx+xx_ofset
      lastvelx=0

   for i in range(cihel_x*cihel_y):
      f=NMesh.Face()
      f.v.append(me.verts[0+i*4])
      f.v.append(me.verts[3+i*4])
      f.v.append(me.verts[1+i*4])
      f.v.append(me.verts[2+i*4])
      me.faces.append(f)

   NMesh.PutRaw(me,"test",1)
   Blender.Redraw
   
   

def draw():
   ####Promenne pro offset tlacitek
   tlac_y=-100
   ####promenne pro slidery
   global cihel_x2,cihel_y2,yy_ofset2,faktor_x2,cihla_vel_y2,cihla_vel_x2,xx_ofset2,faktor_y2

   ####Popisky
   glClear(GL_COLOR_BUFFER_BIT)

   ###Parametry GUI tlacitek
#   glRasterPos2d(15,360+tlac_y)
#   Text("Text")
   cihel_x2= Number("Pocet cihel x:",EVENT_NOEVENT,10,295+tlac_y+60,120,18,cihel_x2.val,0,1000,"Pocet cihel na ose x");
   cihel_y2= Number("Pocet cihel y:",EVENT_NOEVENT,10,295+tlac_y+30,120,18,cihel_y2.val,0,1000,"Pocet cihel na ose y");
   cihla_vel_x2=  Number("Velikost cihly na ose x:",EVENT_NOEVENT,10,295+tlac_y-90,220,18,cihla_vel_x2.val,0,10,"Velikost cihly na ose x")
   cihla_vel_y2 = Number("Velikost cihly na ose y:",EVENT_NOEVENT,10,295+tlac_y-120,220,18,cihla_vel_y2.val,0,10,"Velikost cihly na ose y");
   faktor_x2=Number("Faktor nahody pro osu X:",EVENT_NOEVENT,10,295+tlac_y-30,220,18,faktor_x2.val,0,10,"Faktor nahody pro velikost cihly na ose x");
   faktor_y2=Number("Faktor nahody pro osu Y:",EVENT_NOEVENT,10,295+tlac_y-60,220,18,faktor_y2.val,0,10,"Faktor nahody pro velikost cihly na ose y");

   xx_ofset2= Number("Offset na ose x:",EVENT_NOEVENT,150,295+tlac_y+60,150,18,xx_ofset2.val,0,200,"Offset na ose x");
   yy_ofset2= Number("Offset na ose y:",EVENT_NOEVENT,150,295+tlac_y+30,150,18,yy_ofset2.val,0,200,"Offset na ose y");
      



#  *****Tlacitka pro randomize
   
   ###Nakreslit tlacitka
   Button("Make Wall",EVENT_DRAW,20,10,80,18)
   Button("Exit",EVENT_EXIT,270,10,80,18)

def event(evt,val):
   if(evt == QKEY and not val):
      Exit()

def bevent(evt):
   ###Ovladani  GUI soucasti
   if(evt== EVENT_EXIT):
      Exit()
   if (evt==EVENT_DRAW):
      cihly(cihel_x2.val,cihel_y2.val,yy_ofset2.val,cihla_vel_y2.val,cihla_vel_x2.val,faktor_x2.val,xx_ofset2.val,faktor_y2.val)
      Blender.Redraw


Register(draw,event,bevent)

Autor:  Trubitak [ čtv bře 23, 2006 1:13 pm ]
Předmět příspěvku: 

Tak tohle se mi mooc líbí. Obdivuju lidi co se s tím píšou a co to vůbec umí :wink:

Stránka 11 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/