dimecres, 27 de gener del 2016

Modelat d'un Nissan Patrol 60 (2) - Suspensió simulada

En aquesta entrada milloraré la suspensió del Nissan Patrol 60 mitjançant una suspensió elàstica simulada.

La simulació la faré seguint els passos que es detallen en el tutorial que ja vaig imitar en l'entrada anterior, el d'aquest enllaç.

Blender té un modificador anomenat Roba (Cloth) que simula el comportament de la roba, tenint en compte paràmetres físics com ara el pes, la densitat de l'aire, les col·lisions amb la mateixa peça de roba i amb altres cossos externs, etc...

Per tal d'experimentar una mica amb aquest modificador he creat alguns objectes i els he assignat el modificador Roba. Es poden definir grups de vèrtexs que quedaran fixes com si tinguessin agulles de cap clavades (pin).

He creat una "bandera", amb una línia de vèrtexs "clavada" en un dels costats laterals, una "tovallola" sobre un suport i una "samarreta" penjada d'un fil d'estendre la roba, penjada de dues "agulles".

En executar la simulació, actua la gravetat i la roba es deforma, col·lisionant amb parts d'ella mateixa i amb els objectes que hi ha a la vora, si s'escau.




Un cop conegut el funcionament de la roba, he creat un objecte (que a la simulació final no es veurà) sobre el cotxe. Aquest objecte tindrà aplicat el modificador roba i la part inferior es mourà, afectada per la gravetat i per les forces d'acceleració que actuïn sobre el vehicle, tant longitudinals com transversals.

Traslladant aquest moviment a l'os de l'armadura que controla el xassís, obtindrem una aproximació a una suspensió elàstica. Es poden controlar molts paràmetres, com ara la massa, la rigidesa, etc...


Objecte que simularà la suspensió elàstica
Aprofitant l'avinentesa, he millorat una mica el modelat de les ballestes que formen la suspensió del Nissan Patrol 60 i li he afegit alguns detalls (retrovisor, netejaparabrises)

He creat també un circuit de proves amb alguns obstacles per tal de poder provar la suspensió, un pla inclinat, etc...

He fet una simulació amb un grau de rigidesa molt petit per tal de fer molt evidents els moviment del xassís. Això provoca unes deformacions irreals de les ballestes, que no es notaran amb una rigidesa més realista de la suspensió.

I aquest ha estat el resultat:





En properes entrades intentaré modelar un vehicle articulat i aplicar-li l'esquelet i la suspensió elàstica.

divendres, 8 de gener del 2016

Aparellatge de vehicles de 4 rodes - Camió Groc

En aquesta entrada faré un aparellatge (Riging) amb Blender per a vehicles de 4 rodes i, com a resultat una petita animació d'uns vehicles movent-se en una carretera.

L'objectiu és que el vehicle es desplaci seguint una trajectòria definida per un Camí (Path) i que l'aparellatge s'encarregui de detalls tals com la orientació de les rodes directrius, els diferents recorreguts que tenen l'eix davanter i l'eix posterior, l'adaptació de les rodes als obstacles del terreny, sots, etc...

M'he inspirat en el tutorial d'aquest enllaç, modificant algunes coses.

1) Vehicle: Camió groc

Com a element per a treballar he triat un camió que apareix al comic de Gil Pupil·la  "L'home de les dues rodes" (Le Chinois à deux roues en versió original. Publicat en català, traduït per Albert Jané a la revista "Cavall Fort" núm 323 a 333 , febrer a juliol 1976) del dibuixant Tillieux, del qual ja havia modelat el Nissan Patrol 60 (vegeu aquesta altra entrada del blog)

No sembla que el camió es correspongui a cap camió real. Al còmic només s'explica que és "de fabricació russa". En aquest enllaç hi ha una discussió sobre en quin o quins camions reals està inspirat. Entre altres models podrien ser:

Citroën T46 (Fabricació francesa)
Citroën Type 55 (Fabricació francesa)
ZIL 130  (Fabricació russa)
Hanomag L28 (Fabricació alemanya)
Ford F6 (Fabricació americana)
Toyota BX (Fabricació Japonesa)

Encara que la meva opinió és que el que se li assembla més és aquest:

Commer Superpoise (Fabricació britànica)

Aquest camió ja el tenia modelat en versió molt senzilla i li he afegit algun detall més., però l'objectiu principal de l'entrada no és el modelat sinó l'aparellatge.


2) Recorregut adaptat al tereny

Per començar cal un recorregut Path en 2D, que adaptaré al terreny existent amb el modificador retractilador Shrinkwrap. Sobre aquest recorregut es desplaçarà un element buit Empty, que correspondrà al punt teòric situat al nadir del centre de l'eix davanter.

3) Recorregut diferent de l'eix posterior respecte al davanter

Els recorregut que fa el centre de l'eix davanter d'un vehicle (tret que circuli sobre raïls o guies) no és exactament el mateix que el que fa el centre de l'eix posterior, l'eix posterior fa les corbes amb un radi més gran. Encara que la simulació no serà exacta, l'aproximaré afegint un segon element buit Empty, que seguirà el primer element buit a una certa distància. El cos del cotxe pivotarà sobre el centre de l'eix davanter i s'alinearà amb aquest segon Empty.


4) Funcionament de l'armadura

L'armadura estarà formada per 4 nivells d'ossos, que he col·locat en 4 capes diferents. Cada nivell compleix una determinada funció i es recolza en els ossos de les anteriors.

1r nivell: Ossos que orienten la cua del vehicle i les rodes directrius
2n nivell: Ossos que s'adapten al sensor de terreny
3r nivell: Ossos que depenen del xassís
4t nivell: Ossos que regulen la rotació de les rodes


5) Orientació de les rodes directrius

En conduir, dirigim el cotxe orientant les rodes cap allà on volem anar. Simularé aquest moviment afegint un tercer element buit Empty, que precedirà el primer element buit a una distància aproximada de 1/2 vegades la longitud entre eixos. Les rodes davanteres prendran com a angle de gir el que correspongui a l'alineació del primer Empty amb el tercer Empty.

1r nivell de l'esquelet - Ossos que orienten la cua del vehicle i les rodes directrius


6) Moviment de les rodes i del xassís en funció del relleu del terreny

He creat un pla definit pels 4 punts de contacte de les rodes amb el terreny. Per tal que els 4 punts dels vèrtexs estiguin sempre a la cota del terreny, li he aplicat un modificador retractilador Shrinkwrap referit a la malla que forma el terreny i la carretera.

Sensor de terreny

Els ossos de l'esquelet del cotxe que defineixen la posició en vertical de les rodes contenen la restricció "Fill de..." Constraint "Child of...", de manera que les rodes pujaran i baixaran amb les irregularitats del terreny. Els eixos i el xassís seguiran la posició de les rodes i també modificaran la seva posició i rotació.

Per a aquest model correspon una "suspensió d'eix rígid". En aquest enllaç queda explicat el funcionament mecànic del sistema.

2n nivell de l'esquelet - Ossos que s'adapten al sensor de terreny

Recolzats en els ossos del xassís hi ha els ossos que controlen els elements individuals de la carrosseria: Obertura de portes, obertura del capó, netejaparabrises, etc...

3r nivell de l'esquelet - Ossos que depenen del xassís

A continuació he fet algunes proves per tal de verificar que l'esquelet es comporta més o menys com estava previst. Quan les rodes passen sobre una irregularitat es desplacen amunt i avall i, provoquen que els eixos i el xassís s'orientin segons aquests desplaçaments.

Tot el muntatge funciona bé per a desnivells petits, no està pensat per a simular que el vehicle afronta terrenys fora de pista. No és la intenció que es pugui adaptar a qualsevol situació, només per a les situacions esperables en carretera.



De moment no modelaré el component elàstic de la suspensió, ho deixo pendent per a més endavant, ja que requereix un coneixement del mòdul de cossos rígids que encara no he tocat de manera seriosa.

7) Rotació de les rodes

Per tal que les rodes girin el número de revolucions adequat he calculat la longitud de la trajectòria seguida pel vehicle i l'he dividit pel perímetre de la roda, igual que ja havia fet en una entrada anterior.

Aquestes revolucions les he aplicat a una de les rodes i he fet que les altres tres copiïn la rotació de la primera.

4t nivell de l'esquelet - Ossos que regulen la rotació de les rodes

8)  Segon Vehicle Nissan Patrol 60

Per al segon vehicle he utilitzat el Nissan Patrol 60 que ja tenia modelat (vegeu aquesta altra entrada del blog) i li he adaptat el nou esquelet, ajustant-lo a les dimensions d'aquest segon vehicle

9)  Música

Per a la música he triat la peça "Prayer in C" de Lilly Wood & The Prick and Robin Schulz

10) Càmeres i muntatge

La intenció del muntatge ha estat inspirada per la persecució del camió groc pel tot-terreny blau, igual que al còmic Le Chinois à deux roues, de manera que he creat una carretera amb corbes (inspirada en la carretera que puja al massís de Garraf des de Castelldefels)

Per a la filmació he utilitzat diverses càmeres virtuals. Algunes tenen un recorregut aeri, simulant una filmació des d'un helicòpter. D'altres estan associades a un dels vehicles i s'orienten cap a l'altre. D'altres enfoquen només un vehicle.

Finalment ho he refregit tot plegat dins l'editor d'àudio-vídeo de Blender.

10) Resultat

i aquest ha estat el resultat:





11) Conclusions

Caldrà que millori l'assignació de les rotacions del xassís per tal que estigui influenciat en la mateixa proporció per les 4 rodes, ja que ara algunes predominen sobre les altres. El sistema d'orientació de les rodes directrius caldrà limitar-lo a un sol eix, per tal que es comporti com les direccions reals. Caldrà també que em posi amb la suspensió elàstica, cosa que permetrà que apareguin els balancejos provocats per les inèrcies.

Però globalment estic satisfet del resultat ja que l'animació es limita a modelar el recorregut en planta dels vehicles i l'aparellatge fa la resta.
Està molt automatitzat i, dins les seves limitacions, permet aconseguir un resultat raonablement realista.



dimecres, 23 de desembre del 2015

Curmetratge d'animació: Envol d'un avió Douglas DC-3

En aquesta entrada faré un pas més endavant. Faré un petit curtmetratge d'animació.

Es tractarà d'animar l'envol d'un avió Douglas DC-3 des de l'Aeroport de Sabadell, modelant, aparellant i texturitzant l'avió de forma bàsica i l'entorn de forma elemental.

1- Generalitats

El Douglas DC3 és un avió de propulsió per hèlixs que es va fer servir a partir de 1936. També és força coneguda la seva versió militar anomenada C-47. En aquests enllaços es pot trobar molta informació sobre ell:

Pàgina de Wikipedia sobre el DC-3
www.douglasdc3.com1
www.sunshineskies.com
http://www.flagshipdetroit.org
http://www.taringa.net/posts/info/7529684/C-47-Skytrain-y-C-53-Skytrooper-Dakota.html


Aquest avió ha aparegut a força pel·lícules remarcables, (vegeu aquest enllaç), entre les quals Indiana Jones, El Salari de la por, Dragonfly, Un pont massa llunyà,...

El 2012 la Fundació Parc aeronàutic de Catalunya va portar un aparell a l'aeroport de Sabadell per a restaurar-lo. (Vegeu aquest enllaç)

L'he triat per que m'agrada i també perquè apareix al comic "L'home de les dues rodes" (Le Chinois à deux roues en versió original. Publicat en català, traduït per Albert Jané a la revista "Cavall Fort" núm 323 a 333 , febrer a juliol 1976) del dibuixant Tillieux, del qual ja havia modelat el Nissan Patrol 60 (vegeu aquesta altra entrada del blog)

2- Modelat

Per a modelar l'avió m'he basat en els plànols d'aquest enllaç.

Per començar he modelat el fuselatge a partir d'un cercle que he anat extrudint i deformant, fins a tenir una versió senzilla. Per a facilitar el treball he aplicat un modificador de simetria Mirror, per tal de poder treballar només amb la meitat de la malla.


A continuació he modelat les ales, tot extrudint lateralment algunes de les cares del fuselatge i he modelat les góndoles dels motors.

He creat un parell de materials senzills per tal de fer més fàcil el modelat, de manera que es puguin identificar parts diferents.



Tot seguit he modelat els estabilitzadors horitzontals i verticals, el timó de direcció i el timó de profunditat, els alerons i les hèlixs.

Per a les hèlix he modelat una sola aspa i he fet una matriu Array polar, amb un objecte buit Empty girat 120 graus.

I ja he fet el primer renderitzat amb Cycles





 I a continuació he modelat les portes i finestres (no totes estan als dos costats, quan apliqui el modificador de simetria caldrà tenir-ho en compte) i també el tren d'aterratge, format per tres rodes, dues grans sota els motors i una petita sota la cua.


3- Aparellatge Rigging

A continuació m'he dedicat a l'aparellatge Rigging de les parts mòbils principals. He creat un esquelet Armature amb una sèrie d'ossos Bones per a controlar els moviments dels elements. La part més complexa ha estat el tren d'aterratge davanter, en el qual he utilitzat la cinemàtica inversa Inverse Kinematix.


4- Skinning

Després he fet el  procés de Skinning, consistent en associar els vèrtex de la malla a un o diversos ossos.


5- Proves de moviment

Per a comprovar que les parts es moguin més o menys com cal, he fet una animació bàsica de cada moviment. L'animació està filmada des d'una càmera que té aplicat un modificador de seguiment Track to, per tal que apunti sempre al cos de l'avió.



6- Entorn: Cel i Aeroport de Sabadell

L'avió tindrà una textura molt reflexiva, per tant és important que hi hagi alguna cosa al voltant que es pugui reflectir a l'avió. Per això he creat un cel format per una mitja esfera al qual li he aplicat una textura de núvols que he descarregat d'aquest enllaç. El material que he fet servi és una combinació de node difús i  node emissiu.



 
 
I per a crear un entorn he modelat una aproximació matussera a l'aeroport de Sabadell, basant-me en la informació d'aquests enllaços:

 



Posteriorment li he afegit la textura a partir de Google Maps.

7- Texturitzat

Tot seguit m'he dedicat al texturitzat de l'avió. He fet servir els colors de l'avió d'aquest enllaç. Per començar he marcat les costures Seams a la malla, de manera que han quedat parts que es poden projectar fàcilment sobre un pla. Després he desplegat les cares Unwrap i les he repartit sobre un arxiu .jpg de 2048x2048 píxels, He creat també un arxiu de les mateixes mides per tal de definir quines parts seran més reflexives (colors clars) i quines no (colors foscos). I finalment un arxiu amb una imatge en escala de grisos per a simular el relleu dels reblons i les planxes amb un mapa re relleu Bumpmap, que he combinat amb un altre mapa de relleu per a simular les ondulacions irregulars de les planxes de la superfície.

mapa de textura, mapa de reflexions i mapa de relleu (feu clic a la imatge per ampliar-la)
I aquest és el material complexe de la superfície exterior de l'avió

(feu clic a la imatge per ampliar-la)
He millorat el modelat de les hèlixs, ja que la seva forma massa simple desmereixia el resultat dels reflexes.

8- Proves de renderitzat

Finalment he fet un renderitzat de l'avió dins el seu entorn, i aquest ha estat el resultat:



9- Animació

I he fet una animació més sofisticada... Això ha suposat haver de començar a utilitzar l'Editor No Lineal ( NLA editor ) de Blender.

L'Editor No Lineal NLA editor és una eina de Blender que permet combinar i modificar diferents fragments d'animacions per a formar animacions més complexes. Treballant conjuntament amb el Dope Sheet i la línia de temps Timeline permet elaborar pràcticament qualsevol animació que es pugui imaginar.

En un objecte podem crear fotogrames clau Keyframes amb el seu estat (posició, rotació, visibilitat, color, etc...) , per a un determinat fotograma. Blender interpola entre fotogrames clau per tal de crear l'animació entre ells de manera automatitzada.

Podem agrupar un conjunt de fotogrames clau en una Acció Action, i donar-li un nom. Les accions poden ser moviments elementals o seqüències molt sofisticades.

A l'hora de fer l'animació es fan servir Tires Strips que són fragments d'accions o bé accions completes i que es poden reproduir tantes vegades com faci falta, canviar-ne la velocitat respecte l'acció original, canviar-ne el sentit per tal que passin marxa enrere, etc...

Les Tires Strips es poden organitzar en Pistes Tracks, que funcionen com ara les capes del GIMP. Una pista que estigui situada en un nivell superior tindrà preferència respecte una pista situada en un nivell inferior, en cas d'interferència entre elles. Si no hi ha interferència, es visualitzaran simultàniament.

A la part inferior mostro un fragment del NLA editor on apareixen quatre pistes. La superior correspon al gir de les rodes de l'avió, la segona al gir de l'hèlix esquerra, la tercera al gir de l'hèlix dreta i la quarta al moviment de l'avió en conjunt.

Per a animar l'arrencada de l'hèlix dreta he fet servir el procediment següent: He creat una  acció Action de l'hèlix dreta  que consiteix exclusivament a fer-li fer una única volta.

Aquesta acció l'he utilitzat en tres tires Strip diferents, que he anomenat "Lent-D", "Mitjà-D" i "Ràpid-D", que repeteixen l'acció a diferents velocitats: lenta, mitjana i ràpida, de manera que veurem que la velocitat de gir augmentarà en tres etapes.

I finalment aquestes tres tires Stip estan col·locades seqüèncialment en una pista Track, que he anomenat "Hèlix dreta", que recollirà totes les tires Strip que afectin aquesta hèlix

Aquesta pista Track actua conjuntament amb altres pistes que recullen les tires Strip que afecten altres elements (l'hèlix esquerra, el gir de les rodes i el moviment de l'avió com a element complert)

Ho he concebut de manera que cada element només té informació en una de les pistes Tracks, de manera que no s'aplica cap preferència, però si en un determinat fotograma un determinat element tingués informació en diverses  pistes diferents, s'executaria només la informació de la pista més alta.



(feu clic a la imatge per ampliar-la)



Tot fent el muntatge, ha calgut modificar algunes accions Action creades anteriorment. Prement la tecla Tab es pot accedir al Dope Sheet d'aquella acció i modificar-ne els fotogrames clau.

A la part inferior es pot veure la pantalla organitzada amb la vista 3D a la part superior, just a sota l'editor no lineal NLA editor amb la tira strip que hem seleccionat de color verd (que indica que estem editant la seva acció), a sota el Dope Sheet amb els fotogrames clau de l'acció que estem editant i a sota de tot la línia del temps Timeline


(feu clic a la imatge per ampliar-la)

Un cop l'animació ha estat acabada, l'he renderitzat a 800x600 píxels. He repetit el procés per a totes les càmeres que hi ha a l'escena, cadascuna per al seu rang de fotogrames.


10-Audio

Amb l'Audacity he gravat la meva veu per a simular una conversa entre el pilot i la torre de control. Com que jo he fet els dos papers a la vegada, he distorsionat l'audio que correspon a la torre de control amb un efecte "Canvia el to" i també amb un efecte "Filtre passabaixos".  Després he tallat les frases en arxius individuals, per tal de poder-ne fer el muntatge.


11-Muntatge

En un arxiu de Blender a part he fet el muntatge final amb l'editor d'àudio-vídeo, combinant imatges fixes, seqüències d'imatges, les pistes d'àudio i les lletres sobreimpreses.

Fragment de l'editor d'audio-video

10- Resultat

I aquest ha estat el resultat:


11-Conclusions

Els temps de renderitzats han augmentat molt a partit del moment que he incorporat la cúpula del cel. Caldrà tenir-ho en compte per tal de pensar procediments que no allarguin tant el renderitzat.

La planificació ha estat quasi inexistent, això ha provocat que hagi hagut d'anar endavant i enrere en el procediment. Caldrà que pensi més les coses abans de fer-les, sobretot a mesura que va augmentant la complexitat de tot plegat.

La part positiva és que ara ja conec molt millor l'editor d'accions i el compositor d'àudio-vídeo de Blender. Per altra banda he après a distorsionar la veu amb l'Audacity, cosa que ho havia fet mai.







dissabte, 28 de novembre del 2015

Papiroflèxia - Ocell que mou les ales (2)

En aquesta entrada perfeccionaré el model i l'animació de l'ocell que mou les ales.

El model de l'entrada anterior tenia diversos defectes, la majoria provocats pel fet que no es tenia en compte el gruix dels plecs, de manera que les cares s'interferien entre elles en determinats moments de l'animació.

També tenia l'inconvenient que el paper es mostrava igual per les dues cares, mentre que els papers reals acostumen a tenir una cara blanca i una d'impresa.

En aquest nou model he intentat corregir aquestes mancances.

Paper amb dues cares diferents:

Per començar he preparat un nou material amb dues cares, Això ha estat possible gràcies al node geometry, que permet detectar quina cara del paper (la que està en el sentit de la normal o bé la que està en sentit oposat a la normal ) que està mirant a la càmera. El material mostra llavors un submaterial blanc o bé un submaterial amb el paper imprès.



La textura per al paper de papiroflèxia és el mateix de l'entrada anterior. l'he descarregat d'aquest enllaç:
http://thepapercraneorigami.com/wp-content/themes/paper-crane/images/n-jewelry-paper.jpg 


Primera aproximació (més realista ) als plecs:


En el plegat real, cada plec té una forma d'arc i una certa longitud, determinada per la distància entre les cares. La longitud de l'arc provoca que la mida de les cares planes vagi "disminuïnt" progressivament.

Tenir en compte de manera precisa aquest efecte requereix augmentar de manera exponencial la geometria.

Inicialment vaig  començar a modelar la geometria seguint aquest camí, però la complexitat que anava apareixent em va fer considerar opcions més senzilles.

Geometria inacabada amb el modelat del gruix dels plecs. Abandonada abans d'acabar-la.

Segona aproximació (més senzilla ) als plecs:

Després de l'abandonament de la opció anterior, he escollit fer servir una aproximació intermèdia que consisteix en imaginar que cada element de cara plana està unit als elements adjacents per una làmina elàstica.

Això té l'avantatge que permet treballar amb una geometria més simple, relativament fàcil de calcular gràcies a la trigonometria, que té en compte el canvi de textura del plec provocat per la deformació, i que per a plecs amb poca separació entre cares, no difereix gaire de la geometria real. A més a més donat que puc separar les dues cares del plec entre elles, desapareixen els fenòmens d'interferència mútua.

Plec "elàstic" (blanc)  entre les dues cares planes (blau)


En la imatge animada de sota es mostra el model geomètric en posició tancada i en posició expandida, per tal de visualitzar fàcilment les cares "elàstiques" dels plecs. Les cares elàstiques estan representades de color blanc, i les cares "rígides" amb la textura blavosa del paper.

Per tal de fer aquesta animació, he fet servir dues Shape keys diferents de la mateixa malla i una animació que mostra el trànsit entre elles.



Nova animació:

Un cop ha estat tot a punt he hagut de fer de nou l'animació del plegat, ja que els esquelets Armature que feien falta eren lleugerament diferents dels anteriors. En algunes etapes de l'animació s'han simplificat i en d'altres ha calgut posar un os Bone a cada aresta dels plecs.

He complementat l'animació amb dues càmeres diferents, la segona de les quals es mou, per a donar una visió més dinàmica i més detallada del model.

El so del cant de l'ocell (rossinyol dels aiguamolls de l'Empordà) l'he agafat, igual que en l'altra entrada, d'aquest vídeo.

I finalment aquest ha estat el resultat:


dijous, 12 de novembre del 2015

Primers passos amb Python

En aquesta entrada mostraré els meus primers passos amb el llenguatge de programació Python aplicat a Blender.

També faig aquesta entrada en solidaritat amb la meva seguidora més fidel, que està embolicada en llenguatges de programació i patint de valent amb ells, però  segur que se'n sortirà !!! Ànims !!!

Ja fa quasi un any em va regalar dos llibres sobre Blender.

El primer sobre modelatge i animació, que m'ha permès millorar força la creació i modificació d'elements.

El segon sobre el llenguatge Python. A aquest darrer no li havia pogut dedicar gaire atenció, però ara li ha arribat el moment !

Per començar, per no perdre les tradicions informàtiques, he après a escriure el text " Hola Món ! "

I tot seguit a fer petites operacions matemàtiques i a aplicar-les a Blender.

Aquí mostro el primer programa de prova, que escriu el text " Hola Món ! " i crea diverses esferes, els centres de les quals estan situats sobre una paràbola.

Script de Blender

Resultat obtingut


A continuació m'he plantejat crear la paràbola com una successió de vèrtexs units per segments. Seguint les instruccions del llibre, les d'aquest lloc web i les d'aquest altre lloc web, he pogut aconseguir-ho.

El codi  crea primer dues matrius, una per als vèrtexs i una altra per als segments i després les omple de manera paramètrica.

A partir d'un paràmetre ii (que depèn del número de vèrtexs) es calculen les coordenades de cada vèrtex, i s'escriuen a cada lloc de la matriu de vèrtexs

La matriu de segments (que té un número de llocs igual al número de vèrtexs meny una unitat) s'omple amb els números de vèrtexs consecutius
(si la figura fos tancada hi hauria un segment més, que enllaçaria el vèrtexs número zero amb el darrer)

Finalment es crea la malla i després l'objecte que té com a geometria la malla anterior.

Descripció d'alguns vèrtexs i segments




 A continuació adjunto el codi en format text, per tal que es pugui copiar i enganxar.



# **************************************
# ****  Divagacions3D.blogspot.com  ****
# **************************************
# ****  Prova 002 - Paràbola ***********
# **************************************

# Capçalera
import bpy
import math

    
# Estableix el número de vèrtexs de la paràbola
numvertexs = 16

# crea les matrius de la malla
Verts = []
Edges = []

# omple la matriu de vèrtexs    
for i in range(numvertexs):
        ii=i-(numvertexs/2)
  
        x = 5 + (1*ii)
        y = 0
        z = -4 + (0.2*ii)+(0.2*(ii**2))
        Verts.append((x, y, z))
    
# omple la matriu de segments
for i in range(numvertexs-1):
        # afegeix la vora que uneix cada vèrtex amb el següent
        Edges.append([i, i+1])
    
# crea la malla "Parabolamalla"
malla = bpy.data.meshes.new("Parabolamalla")
malla.from_pydata(Verts, Edges, [])
malla.update()
    
# crea l'objecte  "Parabola"
objecte = bpy.data.objects.new("Parabola", malla)
objecte.data = malla
    
# selecciona l'objecte creat
escena = bpy.context.scene
escena  .objects.link(objecte)
objecte.select = True 

dissabte, 7 de novembre del 2015

Castell de Foix (i 2)

En aquesta entrada completaré el modelat amb Blender del castell de Foix.

He afegit les finestres que faltaven a les torres, mitjançant l'extrusió de cares.


He modelat també el castellet de l'entrada, que per si sol és una construcció prou interessant, ja que té finestres diferents de les del castell, permòdols, contraforts, etc..

 I també he modelat les rampes que faltaven per sota del castellet de l'entrada.




A continuació ha vingut una fase de perfeccionament de la manera com les textures es projectes sobre la geometria, per tal que l'escala fos més uniforme (en les etapes anteriors es podien veure murs formats per pedres gegantines al costat de murs formats per pedres minúscules)

I finalment una fase de perfeccionament dels materials, utilitzant textures més detallades (256 x 256 píxels) i amb les seves corresponents textures de mapa de relleu (Bumpmap) en escala de grisos.

A les torres quadrades, he substituït el material dels angles per un nou material més complexe en el qual es fa servir un arxiu .png amb canal alfa (transparència).

A les parts transparents es mostra  un material idèntic al mur de pedra, a través d'un mapa UV "general"

A les parts opaques es mostren les pedres cantoneres, a través d'un mapa UV "de cantonades" que m'ha permès poder donar un aspecte més interessant a aquests detalls.



 A continuació es mostren els nodes del material de les cantonades:


També he creat uns arbres senzills, a base de 6 plans i un cilindre. Als 6 plans es mostra una textura de la capçada amb transparències, de manera que simula els espais que queden entre les branques.




I finalment he fet una composició del paisatge llunyà que es veu des del castell, per tal de tenir un fons una mica semblant a la realitat. L'he projectat sobre una esfera de gran radi exterior al model.

A continuació mostro diverses imatges del model des de la perspectiva d'un visitant, i també una animació a vista d'ocell:

Rampes d'accés i arbres


Torre d'Arget i torre del mig

Torre del mig i torre rodona




I analitzant el  resultat: Les textures es noten massa diferents les unes de les altres, de manera que hi ha massa contrasts de colors, són punts que hauré d'anar perfeccionant. La textura del paisatge té massa poc detall, caldria un arxiu força més gran.

Però serà en algun altre projecte. El projecte del castell de Foix, de moment acaba aquí.

dimecres, 28 d’octubre del 2015

Castell de Foix (1)

En aquesta entrada començaré el modelat amb Blender del castell de Foix

En aquest enllaç es pot consultar informació sobre el castell, la seva història, etc...

En aquest enllaç es pot veure un vídeo filmat amb drone del castell.

He extret la informació de la geometria bàsica dels plànols que hi ha en aquest lloc web.


El primer pas ha estat generar una sèrie de línies que defineixin la planta dels murs del recinte superior:


I a continuació he extruït les línies per tal de formar els volums bàsics del recinte superior, amb les tres torres:



El següent pas ha estat modelar les parts altes de les torres Nord i , formades per merlets amb una sagetera al mig. Sota els merlets hi ha una lladronera a tot el perímetre (tret d'un petit tram a la torre del mig)

He creat també uns materials provisionals per anar veient el resultat de manera més agradable: Teulada, Mur de pedra tallada, Mur de pedra no tallada, Angles de pedra tallada en un mur de pedra no tallada, etc...



A continuació he modelat de forma bàsica el segon recinte de muralla, incloent la construcció de planta quadrada que hi al costat est del castell.

Tot seguit penjo una animació de l'estat del model.



La següent etapa ha estat modelar la part alta de la torre sud, que és rodona, ha calgut fer un model de merlet i de permòdol nous i utilitzar una matriu circular per a generar les corones de merlets i permòdols.


He obert també les finestres de la façana sud de la torre. Estan protegides amb unes grans reixes per la part exterior.

Les reixes no les he modelat amb geometria, sinó que he creat una textura .png enreixada, i he utilitzat el canal alfa per a donar transparència als espais oberts.

A continuació adjunto els nodes del material de les reixes:


 I el resultat obtingut. Les finestres han quedat una mica massa grans. Caldrà ajustar-les més endavant.



La següent etapa ha estat modelar els merlets, les finestres i l'escala de l'edifici central del castell.




I continuar modelant l'atalaia de la torre nord, els recintes inferiors de muralles i la barbacana del costat sud-oest.

 Tot seguit penjo una animació de l'estat del model.


 Queda per a properes entrades l'obertura de més finestres, el perfeccionament de les fortificacions inferiors i el perfeccionament dels materials