Naimplementujte prehliadač a editor subdivision plochy:

 

 

Jeden krok Catmull-Clark subdivision procesu pre lubovolne meshe je nasledovný:

 

·           Pre každú plôšku sa vyrobia nové „face“ vrcholy ako priemer vrcholov danej plôšky.

·           Pre každú hranu sa vyrobia „edge“ vrcholy ako priemer začiatočného, koncového vrcholu a dvoch „face“ vrcholov prislúchajúcich danej hrane.

·           Pre každý vrchol X sa vyráta jeho nová pozícia ako (1/n)*Q+(2/n)*R+((n-3)/n)*S, kde Q je priemer „face“ vrcholov, ktoré vznikli zo susedných plôšok vrcholu X, R je priemer stredov hrán, ktoré sa dotýkajú vrcholu X, S je stará poloha vrcholu X a n je počet hrán, ktoré sa dotýkajú vrcholu X.

·           Nakoniec sa face vrcholy pospájajú s susednými edge“ vrcholmi a nove vrcholy sa pospájajú so susednými „edge“ vrcholmi. Staré hrany zaniknú.

·           „edge“ vrcholy pre hrany na hranici sa vyrataju ako stredy danych hran, vrchol X na hranici sa zmeni podla vyrazu (1/8)*A+(1/8)*B+(3/4)*X, kde A,B su vrcholy hranice susedne s vrcholom X a X je stara poloha bodu X. Rohove body sa nemenia.

 

Obrázok vysvetľuje opísaný postup v nasom pripade (okrem hranicnych podmienok):