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):