You are on page 1of 63

MASARYK

UNIVERSITY
FACULTY OF INFORMATICS

VisualUV: Blender add-on


for UV Mapping workflow

Bachelor's Thesis

SAMUEL BILEK

Brno, Spring 2023


MASARYK
UNIVERSITY
FACULTY OF INFORMATICS

VisualUV: Blender add-on


for UV Mapping workflow

Bachelor's Thesis

SAMUEL BÍLEK

Advisor: RNDr. Filip Opálený

Department of Visual Computing

Brno, Spring 2023


Declaration
H e r e b y I declare that this p a p e r is m y o r i g i n a l a u t h o r i a l w o r k , w h i c h
I have w o r k e d o u t o n m y o w n . A l l sources, references, a n d literature
u s e d or excerpted d u r i n g e l a b o r a t i o n of this w o r k are p r o p e r l y cited
a n d l i s t e d i n complete reference to the d u e source.

S a m u e l Bílek

Advisor: R N D r . F i l i p Opálený

iii
Acknowledgements
I w o u l d like to thank m y s u p e r v i s o r R N D r . F i l i p Opálený for his advice
d u r i n g m y w o r k o n t h i s project. I w o u l d also l i k e to t h a n k M g r . Jiří
Chmelík, P h . D . for h i s g u i d a n c e o n h o w a bachelor's thesis w o r k s .

iv
Abstract
Blender g r o w s its user base every year, b u t it still lacks some features
that i n d u s t r y - s t a n d a r d a p p l i c a t i o n s for 3 D m o d e l i n g have h a d for
a l o n g time. O n e of the fields w h e r e Blender falls b e h i n d the competi-
tion is the v i s u a l i z a t i o n of U V m a p p i n g errors. The p r i m a r y outcome
of this thesis is the V I S U A L U V a d d - o n for v i s u a l i z i n g U V m a p p i n g
errors i n Blender.
T h i s thesis i n t r o d u c e s readers to the m o s t c o m m o n issues d u r -
i n g U V m a p p i n g a n d surveys 3 D m o d e l i n g applications for m e t h o d s
to v i s u a l i z e the r e s u l t i n g errors. These m e t h o d s are c o m p a r e d w i t h
m e t h o d s available i n the c u r r e n t v e r s i o n of B l e n d e r . B a s e d o n these
observations, a Blender a d d - o n called V I S U A L U V was designed that i m -
plements a set of v i s u a l i z a t i o n overlays that w o u l d benefit the U V m a p -
p i n g w o r k f l o w i n B l e n d e r . Readers are i n t r o d u c e d to the basics of
B l e n d e r ' s P y t h o n A P I , a n d the thesis demonstrates its use i n i m p l e -
m e n t i n g the p r e v i o u s l y designed overlays. The a d d - o n was subjected
to a user test w i t h eight participants. Despite its limitations, the results
i n d i c a t e that it is a v a l u a b l e t o o l for B l e n d e r users. A f t e r the testing
e n d e d , V I S U A L U V w a s released to the p u b l i c .

Keywords
Blender, U V m a p p i n g , V i s u a l i z a t i o n , P y t h o n , A d d - o n

v
Contents
Introduction 1

1 Background 2
1.1 U V M a p p i n g 2
1.2 U V U n w r a p p i n g 3
1.3 C o m m o n P r o b l e m s i n U V M a p p i n g 3
1.4 B l e n d e r 7

2 State of the Art 8


2.1 M a y a 8
2.2 3 d s M a x 11
2.3 H o u d i n i 12
2.4 M O D O 13
2.5 Z B r u s h 15
2.6 C i n e m a 4 D 16
2.7 Blender's Features 17
2.7.1 N a t i v e Features 17
2.7.2 Magic U V 19
2.8 Observations 20

3 V i s u a l U V A d d - o n for Blender 21
3.1 D e s i g n a n d Features 21
3.1.1 U s e r Interface 21
3.1.2 Overlays 22
3.1.3 Options 24
3.2 I m p l e m e n t a t i o n U s i n g B l e n d e r A P I 29
3.2.1 A P I O v e r v i e w 30
3.2.2 C u s t o m Properties 31
3.2.3 C u s t o m Panels 32
3.2.4 C u s t o m Operators 32
3.2.5 Overlay Operator 33
3.2.6 C u s t o m Shaders 35
3.2.7 Refresh O p t i o n s 36

4 User Testing 37
4.1 A d d - o n I n t r o d u c t i o n 37

vi
4.2 Stretched U V s Test 38
4.3 F l i p p e d U V s Test 41
4.4 Split Seams Test 43
4.5 Test O b s e r v a t i o n s 46

4.6 P u b l i c Release 46

5 Limitations and Future Possibilities 47

Conclusion 48

A Appendix 49

Bibliography 51

vii
List of Tables
A. 1 Results of Stretched U V s Test of Test G r o u p 1 49
A.2 Results of Stretched U V s Test of Test G r o u p 2 49
A.3 Results of F l i p p e d U V s Test of Test G r o u p 1 49
A.4 Results of F l i p p e d U V s Test of Test G r o u p 2 50
A.5 Results of M i s s i n g S e a m Test of Test G r o u p 1 50
A.6 Results of M i s s i n g S e a m Test of Test G r o u p 2 50

viii
List of Figures
1.1 U V m a p of a C u b e 2
1.2 Suzanne's default U V m a p 5
1.3 U V stretching e x a m p l e 5
1.4 F l i p p e d U V s example 6
1.5 Overlapping U V s example 6
2.1 M a y a ' s d i s t o r t i o n shader 9
2.2 M a y a ' s c o l o r e d U V islands v i e w 10
2.3 Maya's colored flipped U V s v i e w 10
2.4 M a y a ' s checker shader 11
2.5 M O D O ' s flipped and overlapped U V s visualization . . . . 14
2.6 M O D O ' s U V stretching shader 14
2.7 Features of Z b r u s h ' s U V M a s t e r p l u g - i n 15
2.8 Blender's b u i l t - i n U V stretching v i s u a l i z a t i o n 18
2.9 Blender's b u i l t - i n face orientation v i s u a l i z a t i o n 18
2.10 H e a v y Z - f i g h t i n g i n the M a g i c U V overlay 19
3.1 VISUALUV'SUI 22
3.2 V I S U A L U V ' S A n g l e Stretching overlay 26
3.3 V I S U A L U V ' S U V N o r m a l s overlay 26
3.4 V I S U A L U V ' S U V O v e r l a p p i n g overlay 27
3.5 V I S U A L U V ' S C o l o r e d U V Islands overlay 27
3.6 V I S U A L U V ' S Texture overlay 28
3.7 M o d e l of a bus u s i n g V I S U A L U V ' S overlays a n d a d d i t i o n a l
options 28
4.1 E x t r e m e U V stretching i n Suzanne's default U V m a p . . . 38
4.2 E x t r e m e stretching of the drawer m o d e l 39
4.3 E x t r e m e stretching of the cone m o d e l 40
4.4 G r a p h of results of the Stretched U V s Test 41
4.5 F l i p p e d U V i s l a n d o n the spaceship m o d e l 42
4.6 F l i p p e d U V islands o n the c u p b o a r d m o d e l 42
4.7 Split s e a m o n the h u m a n h e a d m o d e l 44
4.8 Split s e a m o n the d r a g o n h e a d m o d e l 44
4.9 G r a p h of results of the Split Seams Test 45

ix
Introduction
Blender is a p o p u l a r , open-source software u s e d m a i n l y for m o d e l i n g ,
a n i m a t i n g , a n d r e n d e r i n g 3 D graphics. W i t h m i l l i o n s of d o w n l o a d s i n
a year, the e v e r - g r o w i n g user base brings i n n e w ideas the developers
o n l y sometimes i m p l e m e n t [1]. O n e of the fields w h e r e B l e n d e r falls
b e h i n d the c o m p e t i t i o n is U V m a p p i n g v i s u a l i z a t i o n . U V m a p p i n g
is the process of a p p l y i n g textures to models u s i n g U V m a p s — 2 D rep-
resentations of 3 D m o d e l s — c r e a t e d b y a process c a l l e d U V u n w r a p -
p i n g . U V m a p s m a y c o n t a i n m a n y u n d e s i r e d defects that p r o d u c e
v a r i o u s v i s u a l errors a n d artifacts o n the t e x t u r e d m o d e l s . 3 D artists
need to be able to v i s u a l i z e these defects i n o r d e r to eliminate t h e m .
T h i s thesis focuses o n p i n p o i n t i n g c o m m o n p r o b l e m s o c c u r r i n g
d u r i n g U V m a p p i n g a n d d e v e l o p i n g a B l e n d e r a d d - o n that i n t r o -
duces several tools for their v i s u a l i z a t i o n that m a n y i n d u s t r y - s t a n d a r d
3 D g r a p h i c s software u s u a l l y offers b u t B l e n d e r lacks. T h e p r i m a r y
outcome of this thesis is the V I S U A L U V a d d - o n for U V m a p p i n g w o r k -
f l o w i n B l e n d e r , w h i c h has b e e n tested b y eight B l e n d e r users a n d
released to the p u b l i c .
T h e thesis is s t r u c t u r e d i n t o five chapters. T h e first chapter de-
scribes U V m a p p i n g a n d U V u n w r a p p i n g a n d r e v i e w s several c o m -
m o n p r o b l e m s that can occur. It also introduces Blender as a 3 D m o d e l -
i n g a p p l i c a t i o n suitable for a d d - o n development. The second chapter
showcases several i n d u s t r y - s t a n d a r d a p p l i c a t i o n s for 3 D m o d e l i n g
a n d the tools they offer for v i s u a l i z i n g U V m a p p i n g p r o b l e m s f r o m
chapter one. C h a p t e r three describes the c r e a t i o n of the V I S U A L U V
a d d - o n for Blender, first i n t r o d u c i n g the ideas b e h i n d its d e s i g n a n d
later d e s c r i b i n g the i m p l e m e n t a t i o n of its features w i t h the B l e n d e r
P y t h o n A P I . The f o u r t h chapter focuses o n user testing, feedback, a n d
p u b l i c release. The last chapter discusses some limitations a n d future
possibilities for the a d d - o n ' s d e v e l o p m e n t .

1
1 Background

1.1 U V Mapping

In 3 D graphics, texture mapping, or UV mapping, means m a p p i n g a tex-


ture o n the surface of a 3 D object. The texture's d o m a i n can be I D , 2 D ,
or 3 D , a n d it can be represented b y different data structures, s u c h as ar-
rays [2]. This thesis uses textures represented b y 2 D images. U V m a p -
p i n g c a n be d e s c r i b e d m o r e c o l l o q u i a l l y as s p e c i f y i n g to the G P U
w h i c h p a r t s of the object s h o u l d be p a i n t e d b y w h a t p a r t of the tex-
ture [3]. The first step of U V m a p p i n g is creating a UV map. A U V m a p
of a n object is a 2 D representation of the object's surface. It can be nav-
igated u s i n g a two-dimensional coordinate system, usually labeled
(u,v), hence the n a m e U V m a p [2].

Figure 1.1: R i g h t : M o d e l of a C u b e . Left: T h e cube u n w r a p p e d i n t o


a U V m a p . C a p t u r e d i n Blender.

2
i. BACKGROUND

1.2 U V Unwrapping
C r e a t i n g a U V m a p of a n object is c a l l e d UV unwrapping. A t y p i c a l
example to e x p l a i n this is w i t h a paper cube. A paper cube can be easily
u n f o l d e d to create a 2 D r e p r e s e n t a t i o n of its surface. W h i l e w e c a n
q u i c k l y u n w r a p a cube object, u n w r a p p i n g m o r e c o m p l i c a t e d shapes
takes m u c h m o r e effort.
M o d e l s a n d objects i n this thesis refer to m e s h objects defined as 3 D
objects c o n s t r u c t e d w i t h surfaces f o r m e d b y a m e s h — a c o l l e c t i o n
of points i n 3 D space called vertices, connections between t h e m called
edges, a n d filled loops of connected vertices, called/aces or polygons [4,
5, 6]. T h i s thesis refers to the elements of the U V m a p as UV vertices,
UV edges, a n d UV faces o r s i m p l y UVs.
D i f f e r e n t 3 D m o d e l i n g s o f t w a r e offers several u n w r a p p i n g a l g o -
r i t h m s suitable f o r v a r i o u s w o r k f l o w s . I n s o m e of these w o r k f l o w s ,
users can m a r k some edges as seams. W h e n a n edge of a m e s h is m a r k e d
as a seam, the u n w r a p p i n g a l g o r i t h m w i l l split it into t w o distinct edges
i n the f i n a l U V m a p . Seams c a n b e t h o u g h t of as cuts w i t h scissors
before u n w r a p p i n g a p a p e r m o d e l . A g r o u p of c o n n e c t e d U V faces
is called a UV island. A U V m a p can contain more t h a n one U V i s l a n d .

1.3 Common Problems in U V Mapping

This part goes t h r o u g h several defects that u n w r a p p i n g algorithms can


p r o d u c e , explains w h a t errors they introduce to textured m o d e l s , a n d
demonstrates t h e m o n Figures of the m o d e l a n d U V m a p of S u z a n n e —
a test m e s h m o d e l available i n B l e n d e r , often u s e d as a mascot of
the s o f t w a r e — w i t h a test texture. F i g u r e 1.2 s h o w s S u z a n n e ' s b u i l t -
i n U V m a p , w h i c h contains o n l y a t i n y a m o u n t of U V m a p p i n g i s -
sues. The f o l l o w i n g Figures d i s p l a y the U V m a p p u r p o s e f u l l y w a r p e d
to contain the described p r o b l e m s a n d the result they cause o n the 3 D
model.

U V Distortion

U V distortion or U V stretching is a t e r m for u n w r a p p e d U V faces look-


i n g different f r o m their o r i g i n a l c o u n t e r p a r t s a n d stretching the tex-
ture. This happens w h e n the u n w r a p p i n g a l g o r i t h m does not preserve

3
i. BACKGROUND

the angles, edge ratios, or relative areas of the o r i g i n a l model's faces [7].
D i s t o r t i o n c a n create u n d e s i r e d artifacts d u r i n g texture f i l t e r i n g a n d
w h e n u s i n g p r o c e d u r a l textures [8]. See F i g u r e 1.3 for a n example.

Flipped UVs

S o m e faces i n the U V m a p c a n have i n v e r t e d orientations of their


n o r m a l vector a n d cause textures to be d i s p l a y e d f l i p p e d o n one of their
axes. See F i g u r e 1.4 for a n example.

Overlapping UVs

W h e n U V faces o v e r l a p , parts of different U V s w i l l share the same


texture space. W h i l e i n some cases this is desirable, for example, m i r -
r o r i n g one half of a symmetrical object, the U V faces s h o u l d generally
be o v e r l a p p e d b y h a n d a n d not generated b y a n a l g o r i t h m [9]. A n -
other p r o b l e m arises w h e n one U V i s l a n d u n i n t e n t i o n a l l y completely
obscures another, m a k i n g it h a r d to f i n d a n d c a u s i n g m o r e p r o b l e m s .
O v e r l a p p i n g U V s create unpleasant artifacts w h e n b a k i n g textures or
exporting models between applications [9,10]. See Figure 1.5 for a n ex-
ample.

Unrecognizable U V Islands

U n w r a p p i n g a m o d e l c a n result i n a U V m a p f u l l of several s i m i l a r -
l o o k i n g U V islands or U V islands that the h u m a n eye cannot connect
w i t h a n y g e o m e t r y v i s i b l e o n the o r i g i n a l m o d e l . A n o t h e r p r o b l e m
w i t h U V i s l a n d s appears w h e n the u n w r a p p i n g p o s i t i o n s several
U V i s l a n d s too close to each other or e v e n overlaps t h e m , m a k i n g
t h e m seem l i k e one large U V i s l a n d .

4
l. BACKGROUND

Figure 1.2: Right: Suzanne's default U V m a p . Left: M o d e l of Suzanne


w i t h a p p l i e d test texture. C a p t u r e d i n Blender.

Figure 1.3: R i g h t : S u z a n n e ' s U V m a p w i t h a s h r u n k face area. L e f t :


A p p l y i n g a test texture to the edited U V m a p caused texture distortion
o n Suzanne's face area. C a p t u r e d i n Blender.

5
i. BACKGROUND

Figure 1.4: R i g h t : Suzanne's U V m a p w i t h the face U V i s l a n d f l i p p e d


o n the Y-axis. Left: A p p l y i n g a test texture to the e d i t e d U V m a p
caused f l i p p e d texture o n S u z a n n e ' s face area. C a p t u r e d i n Blender.

Figure 1.5: R i g h t : S u z a n n e ' s U V m a p w i t h o v e r l a p p i n g U V faces


o n Suzanne's face. Left: A p p l y i n g a test texture to the e d i t e d U V m a p
caused parts of the texture repeating o n Suzanne's face area. C a p t u r e d
i n Blender.

6
i. BACKGROUND

1.4 Blender
A free, open-source a p p l i c a t i o n for 3 D m o d e l i n g , r e n d e r i n g , r i g g i n g ,
a n i m a t i n g , s i m u l a t i o n s , v i d e o e d i t i n g , a n d other artistic a p p l i c a t i o n s
of the computer graphics field. It is distributed u n d e r the G N U G P L l i -
cense, g r a n t i n g users f u l l o w n e r s h i p rights for their creations . A s m a l l 1

team of full-time employees a n d freelancers is responsible for Blender's


current d e v e l o p m e n t , overseen b y the B l e n d e r F o u n d a t i o n . T h i s n o n -
p r o f i t o r g a n i z a t i o n a i m s to p r o m o t e B l e n d e r a n d secure its f i n a n c i a l
s u p p o r t [11].
B l e n d e r a l l o w s users to d e v e l o p c u s t o m scripts a n d a d d - o n s w i t h
its P y t h o n A P I . T h e A P I receives u p d a t e s w i t h e v e r y n e w v e r s i o n
of B l e n d e r a n d offers developers its f u l l d o c u m e n t a t i o n . S o m e a d d -
2

ons get selected to b e c o m e p a r t of the o f f i c i a l B l e n d e r d i s t r i b u t i o n .


Several internet f o r u m s exist w h e r e users c a n suggest ideas for n e w
features for B l e n d e r , for e x a m p l e , R i g h t - C l i c k Select . N o t a l l ideas
3

become part of the core Blender functionality. H o w e v e r , they can be i m -


p l e m e n t e d into a d d - o n s b y the c o m m u n i t y . B l e n d e r F o u n d a t i o n also
allows a d d - o n developers to monetize their creations. N o official mar-
ketplace exists, b u t several t h i r d - p a r t y sites have become hubs for sell-
ing add-ons.
In this thesis, a l l mentions of Blender refer to Blender 3.5 a n d m a y
not reflect the state of future releases.

1. Blender's license: https://www.blender.org/about/license


2. Blender A P I Documentation: https://docs.blender.Org/api/3.5/index.
html
3. Right-Click Select: https://blender.community/c/rightclickselect/
?sorting=hot

7
2 State of the Art
T h i s chapter r e v i e w s several w i d e l y u s e d 3 D m o d e l i n g p r o g r a m s ,
h i g h l i g h t i n g their features for s p o t t i n g U V m a p p i n g errors. It also
looks at Blender's tools a n d describes several observations of h o w they
are l a c k i n g c o m p a r e d to the c o m p e t i t i o n .

2.1 Maya

A u t o d e s k M a y a is, b y many, c o n s i d e r e d the i n d u s t r y standard for 3 D


m o d e l i n g . It offers m o d e l i n g tools for c r e a t i n g d e t a i l e d m o d e l s a n d
t i m e a n d g r a p h editors for a n i m a t i o n , a n d it also p r o v i d e s p h y s i c s
s i m u l a t i o n s for c l o t h , hair, character m o v e m e n t , a n d e x p l o s i o n s [12].
It received a n Oscar for technical achievement after b e i n g u s e d i n p r o -
d u c t i o n for f i l m s l i k e L o r d of the R i n g s : T w o Towers a n d Star W a r s
E p i s o d e II: A t t a c k of The C l o n e s [13].

• Distortion Shader
M a y a offers a shader for v i s u a l i z i n g U V stretching a n d compres-
s i o n . T h e m o r e stretched a U V face is, the r e d d e r it b e c o m e s ,
w h i l e c o m p r e s s i o n is r e p r e s e n t e d b y b l u e c o l o r a n d o p t i m a l
U V s are c o l o r e d w h i t e . T h i s shader m a k e s d i s t o r t i o n s v i s i b l e
i n the U V E d i t o r a n d the 3 D m o d e l . See F i g u r e 2.1.

• Shaded View
The shaded v i e w paints the U V m a p w i t h blue a n d r e d colors de-
p e n d i n g o n the orientations of the n o r m a l vectors of the U V faces.
It also m a k e s o v e r l a p p i n g U V s m o r e noticeable i n the U V E d -
itor, as the c o l o r of the o v e r l a p p i n g p a r t s is m o r e o p a q u e t h a n
the rest.

• Color View
The color v i e w paints the i n d i v i d u a l islands of the U V m a p based
o n the selected c o l o r i n g m o d e . U s e r s c a n p a i n t each U V i s l a n d
w i t h a different color or color each U V face based o n its n o r m a l
vector orientation, revealing f l i p p e d U V s . See Figures 2.2 a n d 2.3.

8
2. STATE O F T H E A R T

• Checker Shader
T h i s shader a d d s a checker texture o n the U V m a p a n d v i s u a l -
izes this texture o n the o r i g i n a l m o d e l i n the 3 D V i e w p o r t . It
s h o w s h o w e v e n l y different parts of the U V m a p use the tex-
ture. S i g n i f i c a n t differences i n the square size i n d i c a t e u n e v e n
spread. S k e w e d squares indicate U V distortion, a n d s u d d e n cuts
i n the texture f l o w s i g n a l disconnected parts of the U V m a p . If
the texture also contains a l p h a n u m e r i c a l characters, it can be used
to d i s t i n g u i s h w h i c h part of the U V m a p use w h i c h part of the tex-
ture. See F i g u r e 2.4.

Figure 2.1: A m o d e l a n d its U V m a p v i s u a l i z e d w i t h Maya's distortion


shader. Source [14].

9
2. STATE O F T H E A R T

Figure 2.2: A m o d e l a n d its U V m a p v i s u a l i z e d w i t h M a y a ' s c o l o r e d


v i e w p a i n t i n g i n d i v i d u a l U V islands w i t h different colors. Source [14].

Figure 2.3: A m o d e l a n d its U V m a p v i s u a l i z e d w i t h M a y a ' s c o l o r e d


v i e w s h o w i n g f l i p p e d U V faces (red). Source [14].

10
2. STATE O F T H E A R T

2.2 3ds Max


T h i s a p p l i c a t i o n is another w i d e l y u s e d software b y A u t o d e s k . It of-
fers tools for clean retopology of high-resolution models a n d features
for texture-baking [15]. G a m e studios w i d e l y use this p r o g r a m , for ex-
a m p l e , B i o Ware i n D r a g o n A g e : I n q u i s i t i o n a n d N a u g h t y D o g i n U n -
charted 4: a Thiefs E n d [16].

• Checker Pattern
T h e U V E d i t o r lets users a p p l y a checker texture v i s i b l e b o t h
i n the U V E d i t o r a n d the 3 D v i e w .

• Area D i s t o r t i o n
T h i s s h a d e r v i s u a l i z e s area d i s t o r t i o n of U V s b o t h i n the U V
E d i t o r a n d the 3 D v i e w , c o l o r i n g s h r u n k U V s i n tones of r e d a n d
stretched U V s i n blue w h i l e k e e p i n g the U V s w i t h o u t distortion
white.

• Select O v e r l a p p i n g U V s
The U V E d i t o r has a n o p t i o n for selecting a l l o v e r l a p p i n g U V s .

• D i s p l a y Flipped U V s
U s e r s c a n v i s u a l i z e f l i p p e d U V s w i t h a c o l o r e d shader.

UVmesh UV Texture Editor


Figure 2.4: A m o d e l a n d its U V m a p v i s u a l i z e d w i t h M a y a ' s checker
shader. Source [14].

11
2. STATE OF T H E A R T

2.3 Houdini
H o u d i n i is developed w i t h p r o c e d u r a l generation i n m i n d . A l l systems
w o r k o n a n o d e - b a s e d w o r k f l o w , a l l o w i n g users to c o m b i n e n o d e s
i n t o different tools w h i c h c a n be p a c k e d a n d s h a r e d . A significant
t o o l selection for creating w a t e r surfaces, particle effects, a n d c r o w d
generation m a k e s this software v e r y p o p u l a r i n the m o v i e i n d u s t r y ,
u s e d b y b i g studios i n franchises like M a r v e l a n d G a m e of Thrones [17,
18].

• Visualizers
H o u d i n i offers a suite of v i s u a l overlays for different c o l o r i z a t i o n
of the m o d e l . O n e of these visualizers can render U V stretching
w i t h b l u e a n d r e d tones for stretched parts a n d w h i t e for U V faces
w i t h o u t stretching. E a c h v i s u a l i z e r has a m e n u w i t h m a n y cus-
tomizable options a n d checkboxes, s u c h as color variations a n d
w a y s of c o m p u t a t i o n .

• U V Quick Shade
This feature applies a checker texture over the m o d e l for a quick
o v e r v i e w of the model's texture density. This is done as a n over-
lay w i t h o u t creating n e w material.

• Labs U V Visualize
L a b s is a c o l l e c t i o n of d o z e n s of tools for m u l t i p l e w o r k f l o w s
i n H o u d i n i . The U V V i s u a l i z e tool w o r k s s i m i l a r l y to U V Q u i c k
Shade b u t w i t h m o r e space for c u s t o m i z a t i o n . A s i d e f r o m the
checker texture, it offers v i s u a l i z a t i o n of U V islands a n d a b l e n d
s l i d e r for s e p a r a t i n g the m o d e l i n t o parts m a d e f r o m the u n -
w r a p p e d U V i s l a n d s a n d i n t e r p o l a t i n g t h e m b e t w e e n their 3 D
and 2D visuals.

12
2. STATE OF T H E A R T

2.4 MODO
M O D O offers m a n y standard 3 D m o d e l i n g features a n d supports p r o -
c e d u r a l m o d e l i n g , s c u l p t i n g , a n d automated U V u n w r a p p i n g . It also
offers Tenderers, s h a d i n g options, a n d node-based w o r k f l o w s for cre-
a t i n g materials. T h e e n v i r o n m e n t for m o d e l r i g g i n g a n d a n i m a t i o n
is also present, a n d users can also utilize systems for particle a n d hair
s i m u l a t i o n [19]. M o d o has a smaller user base than other p a i d 3 D m o d -
e l i n g software. H o w e v e r , its p r i c i n g is m o r e affordable for s m a l l e r
artists a n d businesses, a n d some artists prefer it over the c o m p e t i t i o n
because of its easy m o d e l i n g a n d r e n d e r i n g capabilities [20].

• Show Overlapped
T h i s o p t i o n lets users v i s u a l i z e a l l o v e r l a p p e d U V faces w i t h
a r e d h i g h l i g h t b o t h o n the U V m a p a n d the 3 D m o d e l . See
F i g u r e 2.5.

• Show Flipped
This shader paints every f l i p p e d U V face yellow, b o t h i n the U V
a n d 3 D v i e w s . It c a n be c o m b i n e d w i t h the o v e r l a p p e d o p t i o n ,
m i x i n g the colors. See F i g u r e 2.5.

• Show Distortion
M O D O has a d i s p l a y o p t i o n for s h o w i n g different levels of U V d i s -
tortion. R e d tones signify distorted U V faces smaller t h a n the av-
erage, a n d b l u e tones i n d i c a t e d i s t o r t e d U V faces larger t h a n
the average . See F i g u r e 2.6.

13
2. STATE O F T H E A R T

Figure 2.5: M O D O ' s features f o r v i s u a l i z i n g f l i p p e d ( y e l l o w ) a n d


o v e r l a p p e d U V s (red) inside U V m a p s . Source [21].

Figure 2.6: A m o d e l a n d it's U V m a p v i s u a l i z e d w i t h M O D O ' s distor-


t i o n shader. Source [21].

14
2. STATE OF T H E A R T

2.5 ZBrush
This software is considered the i n d u s t r y standard for d i g i t a l sculpting.
It offers m a n y 3 D s c u l p t i n g b r u s h e s for creating v e r y finely detailed
surfaces a n d a l l o w s p a i n t i n g colors directly onto the surface w i t h o u t
a U V m a p . It also offers a feature for m u l t i - r e s o l u t i o n m e s h e d i t i n g ,
where c h a n g i n g a part of low-detail m e s h changes a l l the higher-detail
meshes. Z B r u s h received a n A c a d e m y A w a r d for this feature [22].

• U V Master
T h i s b u i l t - i n p l u g - i n offers tools for q u i c k a n d easy automatic
U V u n w r a p p i n g , a l l o w i n g users to m a s k areas for s e a m place-
m e n t a n d to p a r t i t i o n the m e s h into g r o u p s of p o l y g o n s that
b e c o m e separate U V i s l a n d s i n the U V m a p . These g r o u p s are
c o l o r - c o d e d a n d d i s p l a y e d i n the U V E d i t o r a n d the 3 D m o d e l .
A n o t h e r h e l p f u l feature is the a p p l i c a t i o n of a checker texture
w i t h just a f e w clicks. See F i g u r e 2.7.

Figure 2.7: A m o d e l a n d its U V m a p v i s u a l i z e d w i t h features f r o m


Z B r u s h ' s b u i l t - i n U V M a s t e r p l u g - i n . Source [23].

15
2. STATE OF T H E A R T

2.6 Cinema 4D
T h i s is a w i d e l y - u s e d s u b s c r i p t i o n - b a s e d software for 3 D m o d e l i n g ,
c o m p l e x a n i m a t i o n s , s i m u l a t i o n , a n d r e n d e r i n g . Its M o G r a p h p r o c e -
d u r a l m o d e l i n g a n d a n i m a t i n g toolset w o n the Technical Achievement
A w a r d f r o m the A c a d e m y of M o t i o n Picture A r t s a n d Sciences i n 2019.
C i n e m a 4 D receives regular updates w i t h n e w features l i k e the P y r o
system for s i m u l a t i n g fire effects [24].

• Filled Polygons
This v i s u a l i z a t i o n o p t i o n colors polygons based o n the direction
of their n o r m a l vector. N o r m a l vectors of f l i p p e d U V p o l y g o n s
p o i n t a w a y f r o m the c a m e r a a n d are c o l o r e d b l u e , w h i l e u n -
f l i p p e d U V p o l y g o n s r e m a i n gray.

• Distortion
This shader w i l l color the polygons of the U V m a p a n d the o r i g -
i n a l m o d e l w i t h shades of r e d , b l u e , a n d w h i t e . R e d indicates
stretching, blue indicates squashing, a n d w h i t e means n o distor-
tion.

• Multi-Color Islands
T h i s o p t i o n colors each U V i s l a n d u n i q u e l y , m a k i n g it d i s t i n -
guishable o n the U V m a p a n d the o r i g i n a l m o d e l .

• Overlapping Polygons
T h i s v i s u a l i z a t i o n colors the overlaps of U V p o l y g o n s , m a k i n g
t h e m easy to detect.

16
2. STATE OF T H E A R T

2.7 Blender's Features


2.7.1 N a t i v e Features

• V i s u a l i z e U V Stretching
Blender's U V E d i t o r offers a shader for d i s p l a y i n g angle-based
or area-based U V stretching. T h i s s h a d e r p a i n t s the U V faces
i n the U V m a p w i t h colors of a h e a t m a p g o i n g f r o m b l u e for
the least stretched U V s , to y e l l o w for the m o s t stretched ones.
H o w e v e r , this shader is displayed o n l y i n the U V E d i t o r a n d not
i n the 3 D V i e w p o r t , m a k i n g some U V stretching h a r d to detect.
See Figure 2.8.

• Select O v e r l a p p i n g U V s
T h e U V E d i t o r offers a n o p t i o n for selecting a l l o v e r l a p p i n g
U V faces, w h i c h c a n be v i s i b l e i n b o t h the U V E d i t o r a n d the
3 D V i e w p o r t , b u t w i t h o u t any options for their c o l o r i z a t i o n .

• Face O r i e n t a t i o n
B l e n d e r offers a n o p t i o n to color i n d i v i d u a l faces of the m o d e l
b a s e d o n the orientations of their n o r m a l s . H o w e v e r , this is
l i m i t e d to the 3 D V i e w p o r t only, a n d the colors are c o m p u t e d
f r o m the n o r m a l vectors of faces of the 3 D m o d e l . T h e r e is n o
w a y to c o m p u t e colors b a s e d o n U V n o r m a l s .

• Texture O v e r v i e w
To d i s p l a y any texture o n a m o d e l , users have to create a n e w m a -
terial, l i n k the texture to it, a n d assign the material to the m o d e l .

17
2. STATE OF T H E A R T

Figure 2.9: S u z a n n e w i t h f l i p p e d n o r m a l s of certain faces v i s u a l i z e d


w i t h Blender's face orientation feature. R e d means inverted face orien-
tation. C a p t u r e d i n Blender.

18
2. STATE OF T H E A R T

2.7.2 Magic U V

T h i s is a 3 d - p a r t y a d d - o n that comes b u n d l e d w i t h the default instal-


l a t i o n of Blender. It offers a v a r i e t y of tools for U V u n w r a p p i n g b u t
also offers features for v i s u a l i z i n g o v e r l a p p e d a n d f l i p p e d U V s u s i n g
color-coded overlays. H o w e v e r , the a d d - o n has l i m i t e d c u s t o m i z a t i o n
options a n d n o o p t i o n for automatic u p d a t i n g . A l s o , its 3 D V i e w p o r t
overlay is o n l y available i n the E d i t - M o d e a n d suffers f r o m h e a v y
Z - f i g h t i n g . See F i g u r e 2.10.
1

Figure 2.10: M a g i c U V overlay for d i s p l a y i n g f l i p p e d U V s . Left:


U V m a p of a C u b e v i s u a l i z e d w i t h the overlay. R i g h t : T h e overlay
d i s p l a y s h e a v y Z - f i g h t i n g i n the 3 D V i e w p o r t . C a p t u r e d i n Blender.

1. Z-fighting: h t t p s : / / l e a r n o p e n g l . com/Advanced-OpenGL/Depth-testing

19
2. STATE OF T H E A R T

2.8 Observations
T h e features for detecting U V m a p p i n g p r o b l e m s offered b y w i d e l y
u s e d 3 D m o d e l i n g software make it clear that Blender is l a c k i n g c o m -
p a r e d to its competitors. These are the m a i n observations:

1. M o s t industry-standard software offers a q u i c k w a y to v i s u a l i z e


m o d e l s w i t h s i m p l e checker textures. H o w e v e r , B l e n d e r users
m u s t go t h r o u g h several steps of creating a texture, a p p l y i n g it
to a m a t e r i a l , a n d a p p l y i n g the m a t e r i a l to the m o d e l .

2. W h i l e B l e n d e r offers a w a y to v i s u a l i z e U V stretching, it is o n l y
v i s i b l e i n the U V E d i t o r a n d not o n the o r i g i n a l m o d e l . O t h e r
software m o s t l y v i s u a l i z e s stretching o n b o t h the U V m a p a n d
the m o d e l .

3. Blender can select o v e r l a p p i n g U V faces. H o w e v e r , it is c o m m o n


for the c o m p e t i t i o n to c o l o r these faces a n d s h o w t h e m b o t h
i n the U V m a p a n d the 3 D V i e w p o r t .

4. B l e n d e r c a n o n l y v i s u a l i z e the orientations of n o r m a l vectors


of faces of the 3 D m o d e l . T h e r e is n o native feature for v i s u a l i -
z i n g orientations of U V n o r m a l s . A n a d d - o n exists as a p a r t
of B l e n d e r d i s t r i b u t i o n capable of this v i s u a l i z a t i o n , b u t it has
several l i m i t a t i o n s .

5. T h e r e is n o w a y of m a k i n g s i m i l a r U V i s l a n d s d i s t i n g u i s h a b l e .
M o s t of the w i d e l y u s e d 3 D m o d e l i n g software offers a feature
for p a i n t i n g each U V i s l a n d w i t h a distinct color. H o u d i n i goes
the extra step w i t h the o p t i o n to separate the m o d e l i n t o parts
representing the U V islands.

6. S o m e tools f r o m the c o m p e t i t i o n a l l o w extra c u s t o m i z a t i o n for


c h a n g i n g the color scheme a n d different methods of c o m p u t i n g
the v i s u a l s .

20
3 VisualUV Add-on for Blender
This chapter describes the creation of the V I S U A L U V a d d - o n for Blender.
T h e first p a r t of this chapter e x p l a i n s the a d d - o n ' s d e s i g n ideas a n d
its different features. Part t w o i n t r o d u c e s several concepts f r o m the
B l e n d e r A P I a n d their u s e i n i m p l e m e n t i n g the a d d - o n . M o r e i n f o r -
m a t i o n about the A P I is available i n the official d o c u m e n t a t i o n .

3.1 Design and Features

T h e m a i n p h i l o s o p h y b e h i n d this a d d - o n w a s to i n t r o d u c e features
for detecting U V m a p p i n g errors that B l e n d e r l a c k s a n d to e x p a n d
o n those it already has. T h e a d d - o n w a s meant to be easy to use w i t h
a s i m p l e b u t expressive user interface, a n d each v i s u a l i z a t i o n h a d to
be accessible q u i c k l y .

3.1.1 User Interface

VISUALUV is i n t e n d e d to b e u s e d i n B l e n d e r ' s U V E d i t i n g layout,


so m a k i n g the a d d - o n ' s user interface accessible i n b o t h the U V E d i -
tor a n d the 3 D V i e w p o r t w a s essential. T h e c h o s e n a p p r o a c h w a s to
m a k e it accessible i n b o t h areas f r o m a p a n e l i n the Tools section—a
c u s t o m a r y area of access f o r m a n y B l e n d e r a d d - o n s — a l s o k n o w n
as the sidebar o r N - p a n e l .
The layout aims to be s i m p l e , w i t h b i g buttons for every m a i n fea-
ture that can be toggled o n a n d off, offering a d d i t i o n a l c u s t o m i z a t i o n
o p t i o n s a n d o p t i o n a l v i s u a l features that c a n differ b e t w e e n the U V
E d i t o r a n d the 3 D V i e w p o r t .
If n o overlay is active, the p a n e l displays several large buttons rep-
resenting the m a i n features. A f t e r e n a b l i n g a feature, it m a y d i s p l a y
a d d i t i o n a l options right b e l o w its button, a n d several options for other
features appear b e l o w the p r i m a r y b u t t o n selection. E a c h m a i n b u t t o n
contains a n i c o n a n d text, w h i c h change d e p e n d i n g if the c o r r e s p o n d -
i n g overlay is active. F o r e x a m p l e , the d i s a b l e d C o l o r e d U V Islands
overlay b u t t o n displays a n open-eye i c o n a n d text p r o m p t i n g the user
to enable the overlay. A f t e r e n a b l i n g it, it d i s p l a y s a c l o s e d eye a n d
text p r o m p t i n g the user to disable it. See F i g u r e 3.1.

21
3- V I S U A L U V A D D - O N F O R B L E N D E R

Figure 3.1: Left: U I w h e n n o feature is enabled. M i d d l e : U I i n the U V


E d i t o r w h e n a feature is enabled. R i g h t : U I i n the 3 D V i e w p o r t w h e n
a feature is enabled. C a p t u r e d i n Blender.

3.1.2 Overlays

The p r i m a r y function of this a d d - o n was to v i s u a l i z e i n f o r m a t i o n about


a n object a n d its U V m a p w i t h o u t creating a d d i t i o n a l materials that
c o u l d interfere w i t h the user's p r e v i o u s w o r k . Instead of creating n e w
materials, this a d d - o n creates custom overlays w i t h d r a w i n g methods
u s i n g several c u s t o m shaders. A l l overlays v i s u a l i z e the i n f o r m a t i o n
b o t h o n the U V m a p i n the U V E d i t o r a n d o n the m o d e l i n the 3 D
V i e w p o r t . To m i n i m i z e Z - f i g h t i n g , the overlays are d r a w n w i t h a slight
offset. This does not eliminate it completely b u t reduces it, so it is not
v i s i b l e o n m o s t m o d e l s unless the user z o o m s out the c a m e r a too
much.

U V Stretching

Blender already has a U V stretching v i s u a l i z a t i o n , b u t o n l y i n the U V


Editor. T h u s , the i d e a b e h i n d V I S U A L U V ' S U V Stretching feature w a s
to e x p a n d the f u n c t i o n a l i t y of the o r i g i n a l w h i l e k e e p i n g it f a m i l i a r
to those w h o p r e v i o u s l y u s e d it. T h i s feature's color scheme m i m i c s

22
3- V I S U A L U V A D D - O N F O R B L E N D E R

the o r i g i n a l tool's heatmap color range. In a d d i t i o n , it extends it w i t h


tones of orange a n d r e d for extreme stretching. See F i g u r e 3 . 2 .

1. Angle S t r e t c h i n g colors i n d i v i d u a l vertices of p o l y g o n s b a s e d


o n the relative stretching of their angles.

2 . Edge L e n g t h S t r e t c h i n g colors each p o l y g o n b a s e d o n the rela-


tive stretching of its edges.

3 . Area S t r e t c h i n g colors each p o l y g o n based o n its relative shape


a n d area stretching.

Flipped U V s

There is n o tool for quick v i s u a l i z a t i o n of f l i p p e d U V s i n Blender. Still,


it offers a s h a d i n g o p t i o n for v i s u a l i z i n g orientations of n o r m a l vectors
of faces o n the 3 D m o d e l . V I S U A L U V ' S feature for d e t e c t i n g f l i p p e d
U V s tries to resemble the color scheme of the m e n t i o n e d tool, s t r i v i n g
to be i n t u i t i v e a n d easy to u n d e r s t a n d . See F i g u r e 3 . 3 .

Overlapping UVs

Blender has a n o p t i o n for selecting o v e r l a p p i n g U V s . V I S U A L U V goes


the extra step to c o l o r these U V s to m a k e t h e m p o p i n the U V m a p
a n d be easily identifiable o n the o r i g i n a l m o d e l . See F i g u r e 3 . 4 .

Colored U V Islands

T h e r e is n o t o o l i n B l e n d e r for m a k i n g U V i s l a n d d i s t i n g u i s h a b l e b y
color. A t the same t i m e , it is a s t a n d a r d feature i n m o s t other w i d e l y
u s e d 3 D m o d e l i n g software, so V I S U A L U V brings forth this o p t i o n . See
Figure 3 . 5 .

Checker Texture

B l e n d e r users are l i m i t e d to t e d i o u s l y a s s i g n i n g s i m p l e materials to


objects for texture o v e r v i e w . V I S U A L U V a l l o w s users a q u i c k texture
o v e r v i e w b y p a i n t i n g the m o d e l w i t h a s i m p l e checker texture w i t h
just one b u t t o n click a n d w i t h o u t creating any material. Users can also
use their c u s t o m textures. See F i g u r e 3 . 6 .

23
3- V I S U A L U V A D D - O N F O R B L E N D E R

3.1.3 Options

There are several a d d i t i o n a l o p t i o n s for t w e a k i n g the overlays. M o s t


of t h e m are c o m p a t i b l e w i t h a l l overlays. See F i g u r e 3.7.

Auto-Update and Refreshing

The user can toggle the A u t o - U p d a t e feature, w h i c h recalculates the v i -


sual i n f o r m a t i o n after every mouse a n d k e y b o a r d i n p u t . If this feature
is t u r n e d off, the user c a n u p d a t e the overlay m a n u a l l y b y c l i c k i n g
the Refresh b u t t o n .

Visibility

VISUALUV offers several options for c u s t o m i z i n g w h a t s h o u l d be d r a w n .


The user c a n adjust the overlay's o p a c i t y a n d choose w h e t h e r to t u r n
it o n a n d off i n the U V E d i t o r or the 3 D V i e w p o r t . There is also a n o p -
t i o n to t u r n off the overlay's w i r e f r a m e i n E d i t M o d e a n d a n o p t i o n
for Backface C u l l i n g .

Texture Adjustments

The texture i n s i d e the overlay can be c h a n g e d , scaled, a n d v i s u a l i z e d


w i t h c u s t o m opacity. T h e user c a n also choose n o t to f i l l the w h o l e
U V space w i t h the texture b u t o n l y the U V m a p .

Stretch Factor

The U V Stretching overlay offers users to tweak the sensitivity of the


coloring. The sensitivity can range f r o m c o l o r i n g o n l y the most extreme
stretching w i t h a w a r m e r color to p a i n t i n g even the slightest difference
w i t h tones of orange a n d r e d .

24
3- V I S U A L U V A D D - O N F O R B L E N D E R

Color Change

T h i s feature a l l o w s users to change the color scheme of overlays, g i v -


i n g t h e m o p t i o n s to change the overlay's H u e , Saturation, a n d V a l u e .
In a d d i t i o n , the C o l o r e d U V Islands overlay can change its color v a r i a -
t i o n . W i t h a h i g h e r c o u n t of U V i s l a n d s , the n e i g h b o r i n g colors c a n
become v e r y similar, a n d this feature offsets each color b y a different
margin.

Position Change

T h e overlay is b y d e f a u l t d r a w n over the v i s u a l i z e d object, b u t after


enabling this feature, the user can m o v e the overlay o n the three axes
of the 3 D space.

Explosion V i e w

Inspired b y H o u d i n i ' s Labs U V V i s u a l i z e feature for separating the o r i g -


i n a l m o d e l b y its U V i s l a n d s , E x p l o s i o n V i e w offers users a w a y to
separate the overlay's v i s u a l i z a t i o n i n t o p a r t s b a s e d o n the o r i g i n a l
model's U V islands a n d offsetting t h e m f r o m the center. This can also
mitigate Z - f i g h t i n g i n some cases.

25
3- V I S U A L U V A D D - O N F O R B L E N D E R

Figure 3.2: V I S U A L U V ' S A n g l e Stretching overlay i n the U V E d i t i n g


layout. C a p t u r e d i n Blender.

Figure 3.3: V I S U A L U V ' S U V N o r m a l s overlay i n the U V E d i t i n g layout.


C a p t u r e d i n Blender.

26
3- V I S U A L U V A D D - O N F O R B L E N D E R

F i g u r e 3.4: V I S U A L U V ' S U V O v e r l a p p i n g overlay i n the U V E d i t i n g


layout. C a p t u r e d i n Blender.

F i g u r e 3.5: V I S U A L U V ' S C o l o r e d U V Islands overlay i n the U V E d i t i n g


layout. C a p t u r e d i n Blender.

27
3- V I S U A L U V A D D - O N F O R B L E N D E R

Figure 3.6: V I S U A L U V ' S Texture overlay i n the U V E d i t i n g layout. C a p -


t u r e d i n Blender.

Figure 3.7: M o d e l of a b u s u s i n g V I S U A L U V ' S Texture a n d C o l o r e d


1

U V Islands overlays, w i t h enabled E x p l o s i o n V i e w a n d Position Offset.


C a p t u r e d i n Blender.

1. Bus model by R N D r . Filip Opálený

28
3- V I S U A L U V A D D - O N F O R B L E N D E R

3.2 Implementation Using Blender API


B l e n d e r exposes its i n t e r n a l f u n c t i o n a l i t y v i a a P y t h o n A P I . B l e n d e r
has a n e m b e d d e d P y t h o n interpreter that l o a d s at the a p p l i c a t i o n ' s
start a n d r u n s for the w h o l e d u r a t i o n of the B l e n d e r process. T h i s
interpreter r u n s scripts for d r a w i n g the user interface a n d different
i n t e r n a l tools. It offers most of the f u n c t i o n a l i t y of a standard P y t h o n
interpreter w i t h few exceptions. The m a i n exception is the i n a b i l i t y to
create instances of m o s t of the A P I ' s i n t e r n a l classes a n d a l l c u s t o m
classes i n h e r i t i n g f r o m t h e m .
Blender uses Python's native types for integers, floats, a n d booleans.
Strings or sets of strings represent enumerators. A n important c o d i n g
convention i n Blender development is u s i n g single quotes a n d capital
letters for enumerators a n d d o u b l e quotes for strings.
There are three w a y s to execute P y t h o n code inside Blender. The first
w a y is to use Blender's P y t h o n C o n s o l e . This is m a i n l y u s e f u l for test-
i n g s m a l l f r a g m e n t s of code. T h e s e c o n d w a y is to create a n d r u n
scripts f r o m Blender's text editor. This is often u s e d for smaller scripts
creating scenes that w o u l d be too t i m e - c o n s u m i n g to set u p manually.
T h e text e d i t o r has p r o p e r syntax h i g h l i g h t i n g b u t is not as f u l l y de-
v e l o p e d as d e d i c a t e d I D E s , as there are n o c o d e a n a l y s i s features or
d e b u g g i n g interface. Some I D E s can be set u p for easier a d d - o n devel-
o p m e n t , t h o u g h B l e n d e r F o u n d a t i o n s does not officially endorse any.
T h e t h i r d w a y to c o m m u n i c a t e w i t h B l e n d e r v i a the A P I is t h r o u g h
a d d - o n s . T h e y c o m e i n the f o r m of P y t h o n packages, w h i c h have to
be installed into B l e n d e r a n d consequently e n a b l e d for use.
V I S U A L U V ' S source c o d e is d i v i d e d i n t o five P y t h o n files, each
responsible for a different p a r t of the functionality.

• _ i n i t _ . p y is the e n t r y p o i n t for registering c u s t o m O p e r a t o r s ,


P a n e l s , a n d P r o p e r t y G r o u p s into Blender.
• v i s u a l u v _ p r o p s . p y contains d e f i n i t i o n s of P r o p e r t y G r o u p s .
• v i s u a l u _ o p s . p y contains O p e r a t o r s for the m a i n b u t t o n s a n d
the overlays a n d the m a i n f u n c t i o n a l i t y of the a d d - o n .
• v i s u a l u v _ s h a d e r s . py contains the custom shaders for d r a w i n g
overlays.
• v i s u a l u v _ u i . p y defines P a n e l classes for d r a w i n g the user i n -
terface.

29
3- V I S U A L U V A D D - O N F O R B L E N D E R

3.2.1 API Overview

T h e m a i n A P I p a c k a g e is c a l l e d bpy. It gives d e v e l o p e r s access to


several s u b m o d u l e s for accessing i n f o r m a t i o n about the current state
of the a p p l i c a t i o n a n d B l e n d e r ' s i n t e r n a l d a t a , c a l l i n g operators to
be executed, d e f i n i n g c u s t o m classes a n d assigning n e w properties to
already existing ones, a n d m o r e .

Types

T h i s s u b m o d u l e contains a l l of the classes of the bpy m o d u l e . S o m e


classes, for example, O p e r a t o r , P a n e l , a n d P r o p e r t y G r o u p , can be u s e d
for class inheritance, b u t n o class f r o m this m o d u l e c a n be instanced
l i k e a classic P y t h o n class. Instead, these classes m u s t be registered
into B l e n d e r u s i n g the A P I ' s d e s i g n a t e d m e t h o d . A n a d d - o n s h o u l d
also i m p l e m e n t a m e t h o d for u n r e g i s t e r i n g a l l the registered classes,
w h i c h is c a l l e d w h e n d i s a b l i n g the a d d - o n .

Context

T h i s s u b m o d u l e serves to q u i c k l y access i n f o r m a t i o n about the a p p -


lication's c u r r e n t state. W e access the i n f o r m a t i o n t h r o u g h the p r o p -
erties of b p y . c o n t e x t , a n instance of the b p y . t y p e s . C o n t e x t class.
A n important design decision of the context is that a l l its properties are
read-only, b u t w e can m o d i f y t h e m v i a the b p y . d a t a a n d b p y . ops sub-
m o d u l e s . S o m e context i n f o r m a t i o n is accessible g l o b a l l y , b u t m a n y
p r o p e r t i e s are d e p e n d e n t o n the c u r r e n t state of B l e n d e r , d e f i n e d ,
for e x a m p l e , b y the area w i t h focus.

Data

Blender keeps its data i n a n i n t e r n a l database, a n d the b p y . d a t a sub-


m o d u l e a l l o w s d e v e l o p e r s to observe, create a n d r e m o v e instances
of Blender's classes w i t h i n it. The properties of b p y . d a t a are i n the f o r m
of iterable collections c a l l e d b p y c o l l e c t i o n , a n d the v a l u e s w i t h i n
c a n b e accessed w i t h i n d i c e s a n d strings r e p r e s e n t i n g the n a m e s of
the instances. S o m e operations m a y change the o r d e r of the stored
data, m a k i n g the indices i n v a l i d .

30
3- V I S U A L U V A D D - O N F O R B L E N D E R

Operators

A n operator serves as a n e n d - p o i n t f r o m w h i c h users can m a n i p u l a t e


Blender's environment. M o s t buttons i n Blender's user interface repre-
sent operators. W e c a n c a l l any registered operator f r o m the b p y . ops
s u b m o d u l e . S o m e operators c a n o n l y w o r k i n a specific context a n d
w i l l raise a R u n t i m e E r r o r o t h e r w i s e . O p e r a t o r s m a y define a p o l l ()
m e t h o d that returns a b o o l e a n v a l u e b a s e d o n w h e t h e r the operator
can be executed. O n c e c a l l e d f r o m b p y . ops, a s t a n d a r d operator w i l l
call its e x e c u t e () m e t h o d . The r e t u r n v a l u e of this m e t h o d indicates
w h e t h e r the execution w a s successful.

Properties

Several A P I classes a n d classes i n h e r i t i n g f r o m t h e m c a n receive


n e w c u s t o m p r o p e r t i e s u s i n g the b p y . p r o p s s u b m o d u l e . T h e r e are
p r o p e r t i e s for P y t h o n ' s p r i m i t i v e data types a n d V e c t o r s , P o i n t e r s ,
Enums, a n d C o l l e c t i o n s . F o r m o r e o r g a n i z e d c o d e , p r o p e r t i e s c a n
exist as p a r t of a P r o p e r t y G r o u p . O p t i o n a l l y , a p r o p e r t y c a n have
a getter, a setter, a n d a n u p d a t e m e t h o d that gets c a l l e d e v e r y t i m e
the p r o p e r t y gets assigned a value. These methods are passed as a r g u -
ments i n the p r o p e r t y definition. M u l t i p l e other arguments exist, such
as name, description, default v a l u e , a n d others, d e p e n d i n g o n the p r o p -
erty type. C u s t o m P r o p e r t y G r o u p s have to be registered as other cus-
t o m classes. H o w e v e r , the p r o p e r t i e s themselves w i l l get registered
i n t e r n a l l y after their d e f i n i t i o n . A d d - o n s s h o u l d ensure the r e m o v a l
of a l l properties d e f i n e d outside P r o p e r t y G r o u p s u s i n g P y t h o n ' s d e l
statement.

3.2.2 Custom Properties

A l l m o d e l s w i t h a n o p t i o n for a V I S U A L U V overlay are instances of


the b p y . t y p e s . Ob j e c t class. V I S U A L U V adds m a n y custom properties
to this class. T h e y reflect the i n n e r states, flags, a n d v a l u e s n e e d e d
for a l l features to f u n c t i o n correctly. The v i s u a l u v _ p r o p s s u b m o d u l e
declares a l l these p r o p e r t i e s i n s i d e a c u s t o m P r o p e r t y G r o u p , w h i c h
is then i m p o r t e d into the _ i n i t _ . py file a n d registered as one custom
p r o p e r t y of the Ob j e c t class, creating one entry p o i n t for a l l of the ob-
ject's properties related to the a d d - o n . Several of these properties use
a n u p d a t e m e t h o d that evaluates flags for recalculation.

31
3- V I S U A L U V A D D - O N F O R B L E N D E R

3.2.3 Custom Panels

The b p y . t y p e s . P a n e l class a l l o w s developers to create c u s t o m parts


of the user interface. E a c h p a n e l has to c o n t a i n i n f o r m a t i o n about
its l a b e l a n d the area w h e r e it s h o u l d be d i s p l a y e d . T h e contents
of the P a n e l are d e f i n e d inside its d r a w i n g m e t h o d . This m e t h o d w o r k s
w i t h the P a n e l ' s layout property, a n instance of the b p y . t y p e s . Layout
class. It offers several methods for creating U I elements. Some of these
m e t h o d s r e t u r n n e w instances of the L a y o u t class, w h i c h c a n a g a i n
be u s e d for c a l l i n g n e w U I elements a l l o w i n g their nesting.
B u t t o n s a n d p r o p e r t i e s serve as the interactable p a r t s of the U I .
A s m e n t i o n e d , b u t t o n s represent operators. F u r t h e r m o r e , t h e y c a n
d i s p l a y c u s t o m text a n d icons. Properties c a n also be represented b y
different U I elements. N u m e r i c a l properties are d i s p l a y e d as textboxes,
enumerators as c o m b o boxes, a n d b o o l e a n properties as checkboxes,
but m a n y properties have options for alternative displays. For example,
the n u m e r i c a l properties c a n be d i s p l a y e d as sliders.
V I S U A L U V defines t w o custom P a n e l classes, one for the U V E d i t o r
a n d one for the 3 D V i e w p o r t , inherited f r o m the V i s u a l U V P a n e l class.
Its d r a w i n g m e t h o d defines h o w to d r a w the layout of b o t h Panels but
omits certain U I elements f r o m d r a w i n g d e p e n d i n g o n the area w h e r e
the P a n e l is d r a w n . For e x a m p l e , the p a n e l i n the U V E d i t o r does not
offer a c h e c k b o x for d i s p l a y i n g the W i r e f r a m e overlay because this
feature is o n l y v i s i b l e i n the 3 D V i e w p o r t .

3.2.4 Custom Operators

VISUALUV'S b u t t o n - r e p r e s e n t e d operators c a n be d i v i d e d i n t o t w o
groups. The first g r o u p comprises the operators for d i s p l a y i n g overlays
for stretching, f l i p p e d a n d o v e r l a p p e d U V s , a n d c o l o r e d U V i s l a n d s .
These operators inherit f r o m the T o g g l a b l e O p e r a t o r class. Their exe-
c u t i n g m e t h o d s c a l l o n l y one i n h e r i t e d m e t h o d , w h i c h ensures that
enabling one of t h e m w i l l disable any p r e v i o u s l y enabled one. The rea-
s o n for s p l i t t i n g this f u n c t i o n a l i t y into separate operators is i n t e n d e d
for U I r e a d a b i l i t y because each operator can have a different descrip-
tion, w h i c h is d i s p l a y e d w h e n the user hovers the cursor over the but-
ton. The second g r o u p contains o n l y the operator for d i s p l a y i n g texture
overlay that w o r k s outside the toggle functionality. T h u s , it c a n w o r k
i n c o m b i n a t i o n w i t h any other m a i n b u t t o n .

32
3- V I S U A L U V A D D - O N F O R B L E N D E R

3.2.5 Overlay Operator

M o d a l operators are s p e c i a l instances of the O p e r a t o r class. Instead


of e x e c u t i n g just once, they r u n every t i m e B l e n d e r detects a n event.
B l e n d e r events are m o s t l y related to user i n p u t , for e x a m p l e , m o u s e
clicks a n d b u t t o n presses. M o d a l operators s h o u l d e n d their executions
like regular operators, p a s s i n g i n f o r m a t i o n o n w h e t h e r the execution
w a s successful.
D e v e l o p e r s c a n a d d c u s t o m overlays to B l e n d e r ' s v i s u a l s . These
overlays need custom d r a w i n g methods, a n d they need to be specified
w h e r e a n d at w h a t stage of the d r a w i n g p i p e l i n e to draw.
Inside V I S U A L U V , the p r e v i o u s l y m e n t i o n e d c u s t o m b u t t o n opera-
tors o n l y w o r k as w r a p p e r s for c a l l i n g a custom m o d a l operator, w h i c h
makes most of the w o r k . T h e y call a separate m o d a l operator for each
affected object. A t the start of its r u n , the operator creates t w o custom
overlays, one for the U V E d i t o r a n d one for the 3 D V i e w p o r t , a n d they
w i l l be active u n t i l a l l of the m a i n buttons are t u r n e d off or u n t i l the ob-
ject gets deleted. It means that n o matter the active feature, a l l the i n -
f o r m a t i o n to be d r a w n is still sent to the same t w o overlays. To keep
the overlays u p d a t e d , the m o d a l operator checks w h e t h e r it s h o u l d
recalculate the i n f o r m a t i o n to be d i s p l a y e d . If so, a m a i n r e c a l c u l a -
tion m e t h o d gets called, w h i c h creates a n u p d a t e d copy of the object's
mesh. This m e s h splits its p o l y g o n s into triangles, a n d the recalculation
m e t h o d loops over t h e m , c a l l i n g smaller m e t h o d s for collecting infor-
m a t i o n , w h i c h is later batched for shaders. D e p e n d i n g o n the enabled
features, vertices s h a r e d b y different edges c a n be v i s i t e d m u l t i p l e
times, increasing the c o m p u t a t i o n time. The A P I ' s tools for p r e p a r i n g
data for shaders also take a lot of time, m a k i n g recalculations of models
w i t h higher geometry counts time-expensive. M a n y o p t i o n a l features
are n o t r e c a l c u l a t e d i n s i d e this m e t h o d because t h e y are p r o c e s s e d
inside the add-on's shaders. H o w e v e r , a l l of the m a i n features n e e d to
be recalculated.

33
3- V I S U A L U V A D D - O N F O R B L E N D E R

U V Stretching

N o matter the c u r r e n t l y selected stretching t y p e , the shaders receive


i n f o r m a t i o n about each t r i a n g l e i n the 3 D V i e w p o r t a n d its counter-
p a r t i n the U V E d i t o r , w h i c h is t h e n p r o c e s s e d i n t o the f i n a l color.
A s each triangle m i g h t represent o n l y a part of a w h o l e face, the recal-
c u l a t i o n m e t h o d n e e d s to keep a reference to the p r e v i o u s l y v i s i t e d
faces (or vertices) a n d u p d a t e the values.

U V Normals

The recalculation m e t h o d computes the n o r m a l vector of each triangle


a n d assigns it a color d e p e n d i n g o n its orientation.

Overlapped U V s

T h i s feature uses B l e n d e r ' s operator for selecting o v e r l a p p e d U V s ,


w h i c h is o n l y available i n the E d i t - M o d e , so this feature is unavailable
o u t s i d e of it. A n o t h e r l i m i t a t i o n is B l e n d e r ' s U V selection s y n c h r o -
n i z a t i o n feature, w h i c h m u s t be t u r n e d off. The recalculation m e t h o d
checks w h i c h triangles w e r e affected b y the s e l e c t - f l i p p e d operator
a n d assigns t h e m a color, w h i l e other triangles are m a d e transparent.

Colored U V Islands

A t the start, the r e c a l c u l a t i o n m e t h o d fetches a l l the U V i s l a n d s i n


the f o r m of lists of p o l y g o n indices a n d assigns colors to a l l p o l y g o n s
b a s e d o n their U V i s l a n d s . W h i l e l o o p i n g over the triangles, each
triangle gets assigned the color of its c o r r e s p o n d i n g p o l y g o n .

Explosion View

T h i s feature w o r k s h a n d i n h a n d w i t h the p r e v i o u s . If e n a b l e d , the


U V i s l a n d r e c a l c u l a t i o n m e t h o d also calculates the e x p l o s i o n d i r e c -
t i o n of each U V i s l a n d b a s e d o n the d i r e c t i o n s of the n o r m a l s of its
polygons.

34
3- V I S U A L U V A D D - O N F O R B L E N D E R

3.2.6 Custom Shaders

For a l o n g time, a d d - o n developers c o u l d use the b g l m o d u l e for u s i n g


O p e n G L functionality inside the Blender A P I . H o w e v e r , w i t h O p e n G L
not b e i n g d e v e l o p e d a n y m o r e [25], B l e n d e r F o u n d a t i o n has a d d e d
some s u p p o r t for M e t a l o n A p p l e devices a n d is f o c u s i n g o n a d d i n g
V u l k a n s u p p o r t i n the future. W i t h this diversification of graphics A P I s ,
Blender A P I has deprecated the O p e n G L - d e p e n d e n t b g l m o d u l e a n d
i n t r o d u c e d a n e w gpu m o d u l e for abstracting c o m m u n i c a t i o n between
B l e n d e r a n d the G P U [26, 27].
V I S U A L U V ' S d r a w i n g m e t h o d s use c u s t o m shaders created w i t h
the gpu m o d u l e . T h e r e c a l c u l a t i o n m e t h o d of the overlay operator
passes a l l the collected i n f o r m a t i o n into the shaders. This i n f o r m a t i o n
does not change u n t i l the next r e c a l c u l a t i o n . H o w e v e r , the shaders
keep r e d r a w i n g w i t h e v e r y B l e n d e r ' s d r a w i n g r o u t i n e , so the cus-
t o m d r a w i n g m e t h o d s pass t h e m n e w i n f o r m a t i o n about the w o r l d
a n d c a m e r a matrices a n d several c u s t o m p r o p e r t i e s for a d d i t i o n a l
features l i k e color a n d p o s i t i o n shifts a n d the p o s i t i o n a n d e x p l o s i o n
offsets. There are f o u r different shaders, b u t t h e y are u s u a l l y u s e d
in combination.
Two m a i n shaders are u s e d to d r a w most of the overlays' v i s u a l i n -
formation. They have v e r y similar functionality, b u t one draws a n over-
lay i n the 3 D V i e w p o r t , a n d the other draws inside the U V Editor. These
shaders capitalize o n the c o m p u t i n g p o w e r of the G P U , so several c o m -
putational steps of some of the m a i n features are f i n a l i z e d inside them.
T h e m a i n shader for 3 D V i e w p o r t c a n d r a w a c u s t o m i m a g e texture,
b u t because of c e r t a i n features of the U V E d i t o r overlay, its shader
does n o t have this ability. T h a t is w h y a s e c o n d shader for the U V
E d i t o r is u s e d for d r a w i n g the texture.
T h e 3 D V i e w p o r t shader d r a w s the overlay w i t h a slight offset to
reduce the effect of Z - f i g h t i n g , b u t as a tradeoff, it obscures the b u i l t -
i n w i r e f r a m e of the E d i t - M o d e a n d the object o u t l i n e of the Object-
M o d e . B l e n d e r A P I does not offer a n o p t i o n for h a n d l i n g the stencil
buffer, so there is n o easy w a y to d r a w custom outlines, b u t a n object's
w i r e f r a m e c a n be d r a w n w i t h o u t issues. T h a t is the use for the last
shader. It is straightforward a n d versatile e n o u g h to d r a w the vertices
a n d edges of the m e s h , the seams, a n d the selected faces.

35
3- V I S U A L U V A D D - O N F O R B L E N D E R

3.2.7 Refresh Options

A f t e r a n overlay starts r u n n i n g , the U I d i s p l a y s a n e w large b u t t o n


for refreshing the overlays. U n d e r this b u t t o n is a checkbox for the A u t o -
U p d a t e feature, w h i c h u p d a t e s the v i s u a l i n f o r m a t i o n after e v e r y
m o u s e a n d k e y b o a r d i n p u t . T h i s feature is e n a b l e d b y d e f a u l t , b u t
the frequent recalculations can cause stuttering o n models w i t h a higher
p o l y g o n c o u n t . W h e n d i s a b l e d , the user has to u p d a t e the v i s u a l i n -
f o r m a t i o n m a n u a l l y . That is w h e r e the Refresh b u t t o n comes to use.
T h e overlay operator a n d d r a w i n g m e t h o d s a l l r e l y o n accessing
the i n f o r m a t i o n about the object that i n v o k e d t h e m , a n d for this, they
keep its reference. H o w e v e r , s o m e o p e r a t i o n s i n B l e n d e r c a n cause
i n v a l i d a t i o n of this reference. If this occurs, the operator a n d overlays
w i l l t u r n off, b u t the object's p r o p e r t i e s w i l l keep the v a l u e s reflect-
i n g a n active overlay, a n d the U I w i l l not change. If this h a p p e n s ,
the Refresh b u t t o n w i l l restart the last p r e v i o u s l y r u n n i n g overlay.

36
4 User Testing
VISUALUV has undergone a s m a l l user test w i t h eight participants. A l l
testers h a d p r e v i o u s experience w i t h 3 D m o d e l i n g a n d U V m a p p i n g
i n Blender. A t the start of the session, each tester was first i n t r o d u c e d
to the a d d - o n a n d h a d a s m a l l time w i n d o w for t r y i n g out the different
features. A f t e r w a r d , the test consisted of three m o r e parts. I n each
part, the tester w a s t o l d about a U V m a p p i n g issue they w o u l d l o o k
for i n t w o m o d e l s . The g o a l w a s to locate the p r o b l e m a n d s h o w it to
the test provider. W i t h the first m o d e l , the user was a l l o w e d o n l y to use
the default f u n c t i o n a l i t y of Blender, a n d w i t h the second m o d e l , they
h a d to use V I S U A L U V . The test p r o v i d e r measured the time it took t h e m
o n each m o d e l . The testers were d i v i d e d into t w o g r o u p s , w h e r e one
g r o u p w o r k e d w i t h m o d e l A w i t h o u t the a d d - o n a n d m o d e l B w i t h
the a d d - o n , a n d the other g r o u p w o r k e d w i t h the m o d e l s i n reversed
order. The f o l l o w i n g parts s h o w h o w each part of the test p r o c e e d e d .

4.1 Add-on Introduction

A t the start of the test session, the user received a description of the a d d -
on's m a i n features a n d w a s l e d t h r o u g h its user interface. F o l l o w i n g
this i n t r o d u c t i o n w a s a f i v e - m i n u t e w i n d o w w h e r e the tester c o u l d
test a l l the add-on's features o n the m o d e l of Suzanne w i t h a m o d i f i e d
U V m a p c o n t a i n i n g different errors the a d d - o n c o u l d v i s u a l i z e .
T h e m o d e l comes w i t h p r e m a d e U V m a p , b u t it received several
m o d i f i c a t i o n s for the test:

1. Seams have been created f r o m the existing U V islands to d e m o n -


strate V I S U A L U V ' s W i r e f r a m e overlay v i s u a l i z a t i o n .

2. O n e of the U V i s l a n d s r e p r e s e n t i n g S u z a n n e ' s eyes has b e e n


flipped.

3. The U V islands representing ears overlap w i t h each other.

S o m e testers have n o t i c e d one U V face o n the U V i s l a n d repre-


senting Suzanne's face w a s s h o w i n g colors of extreme U V Stretching.
Part of it w a s also l a b e l e d as f l i p p e d b y the U V N o r m a l s overlay. It

37
4. U S E R T E S T I N G

was, i n fact, not a m o d i f i c a t i o n , b u t it w a s a part of Suzanne's default


U V m a p . This U V face is so s m a l l it is barely visible w h e n o b s e r v i n g it
i n its native 2 D representation, b u t it is quite easy to spot o n the o r i g i -
n a l 3 D m o d e l w i t h the U V stretching overlay. See F i g u r e 4.1.

Figure 4.1: U p p e r r i g h t : S u z a n n e ' s d e f a u l t U V m a p . L o w e r left:


C l o s e u p of the U V face w i t h extreme stretching. Right: Its 3 D counter-
part v i s u a l i z e d w i t h V I S U A L U V ' S U V Stretching (upper) a n d U V N o r -
m a l s (lower) overlays C a p t u r e d i n Blender.

4.2 Stretched UVs Test


I n this test, the tester w a s w o r k i n g w i t h m o d e l s w h o s e U V s s h o w e d
v e r y m i n i m a l stretching initially b u t were m o d i f i e d to contain one area
w i t h extreme stretching, w h i c h was not too obvious to spot. The tester
h a d to f i n d the p r o b l e m a t i c area b o t h i n the U V m a p a n d the 3 D
model.

Models

T h e first m o d e l for testing the U V stretching overlay w a s a drawer.


The U V m a p of this m o d e l contained dozens of rectangular U V islands
consisting of s m a l l amounts of rectangular a n d trapezoidal faces, mak-
i n g it d i f f i c u l t for eye n a v i g a t i o n . T h e U V i s l a n d r e p r e s e n t i n g a t r i m

38
4. U S E R T E S T I N G

of the drawer's face has been m o d i f i e d so that one U V vertex b e l o n g i n g


to t w o U V faces has b e e n p u t o n the exact c o o r d i n a t e s as its n e i g h -
b o r i n g U V vertex, m o r p h i n g the U V faces i n t o s h a r p triangles. See
F i g u r e 4.2.
E v e n t h o u g h this m o d e l w a s i n t e n d e d to test the U V stretching
overlay, it c o u l d have also b e e n u s e d to test F l i p p e d U V s overlay be-
cause the m o d e l ' s U V m a p also contained one f l i p p e d U V i s l a n d , left
there b y the o r i g i n a l author.
T h e s e c o n d m o d e l for testing this feature w a s a street cone. T h i s
m o d e l ' s U V m a p h a d f o u r w e l l - u n w r a p p e d U V i s l a n d s representing
the outer a n d i n n e r sides of the base a n d the c o n e - s h a p e d t o p . O n e
of the vertices o n the top p a r t of the outer cone's U V i s l a n d has been
m o d i f i e d s i m i l a r l y to the p r e v i o u s m o d e l . See F i g u r e 4.3.

\_ ———~ |

F i g u r e 4.2: E x t r e m e stretching of the d r a w e r m o d e l . C a p t u r e d


1

i n Blender.

1. Drawer model by ksalk3d: https://free3d.com/3d-model/


drawer-bed-side-547686.html

39
4. U S E R T E S T I N G

Figure 4.3: Extreme stretching of the cone m o d e l . C a p t u r e d


2

i n Blender.

Results

W i t h o u t V I S U A L U V , a l l testers f o u n d the distorted spot w i t h i n the time


l i m i t . T h e y u s e d three different a p p r o a c h e s for s e a r c h i n g for the
stretched U V s . T h e first a p p r o a c h w a s to inspect the w h o l e U V m a p
m a n u a l l y . T h i s m e t h o d w o r k e d better w i t h the d r a w e r m o d e l , w h e r e
m o s t U V s h a d r e c t a n g u l a r shapes, so closer i n s p e c t i o n r e v e a l e d the
p r o b l e m a t i c area. The second a p p r o a c h w a s to create a n e w m a t e r i a l
w i t h a c o l o r - g r i d texture a n d assign it to the test objects. The idea was
that the texture w o u l d s h o w signs of d i s t o r t i o n o n the d e s i r e d spot.
The f i n a l w a y the testers u s e d w a s u s i n g B l e n d e r ' s default stretching
overlay. This overlay is o n l y v i s i b l e i n the U V E d i t o r , so the tester still
h a d to closely inspect the U V m a p before f i n d i n g the i n c r i m i n a t e d
spot.
W i t h V I S U A L U V , most testers c o u l d f i n d the stretched area w i t h i n
one minute. O n e tester w o r k i n g w i t h the street cone m o d e l d i d not re-
alize the potential of q u i c k l y inspecting the 3 D m o d e l a n d instead tried
to go over a l l U V faces of the U V m a p . A n o t h e r tester w o r k i n g w i t h

2. Street Cone model by paraneuf: https://free3d.com/3d-model/


street-cone-pbr-438608.html

40
4. U S E R T E S T I N G

the d r a w e r m o d e l h a d trouble n o t i c i n g the r e d i n d i c a t i o n of extreme


stretching near the seams, w h i c h were also c o l o r e d r e d , b u t overcame
this p r o b l e m b y c h a n g i n g the overlay's c o l o r scheme. F o r c o m p l e t e
time results, see F i g u r e 4.4.

Tester 1

Tester 2

Tester 3

Tester 4

Tester 5

Tester 6

Tester 7

Tester 8

00m

Figure 4.4: G r a p h of results of the Stretched U V s Test

4.3 Flipped UVs Test


B o t h m o d e l s i n this test h a d exactly one f l i p p e d U V i s l a n d , a n d the
testers h a d to i d e n t i f y t h e m b o t h o n the U V m a p a n d the 3 D m o d e l .

Models

The first m o d e l for this test was a spaceship. It i n i t i a l l y d i d not contain


any f l i p p e d U V s b u t w a s m o d i f i e d so that one U V i s l a n d representing
a l o w e r p a r t of one of the spaceship's w i n g s b e c a m e f l i p p e d . See
F i g u r e 4.5.
T h e s e c o n d m o d e l w a s a c u p b o a r d . S i m i l a r to the d r a w e r f r o m
the p r e v i o u s test, the c u p b o a r d ' s U V m a p c o n t a i n e d m a n y s i m i l a r -
l o o k i n g rectangular a n d trapezoidal U V islands. C o n t r a r y to the space-
ship m o d e l , the c u p b o a r d h a d several U V islands identified as f l i p p e d
by V I S U A L U V a n d h a d to be adjusted. O n l y one U V i s l a n d representing
a part of the t r i m of one of the furniture's doors has b e e n left f l i p p e d .
See F i g u r e 4.6.

41
4- U S E R T E S T I N G

Figure 4.5: F l i p p e d U V i s l a n d o n t h e s p a c e s h i p m o d e l . C a p t u r e d
3

i n Blender.

Figure 4.6: U p p e r : M u l t i p l e f l i p p e d U V i s l a n d s o n t h e c u p b o a r d
m o d e l . L o w e r : T h e a l t e r e d c u p b o a r d m o d e l u s e d f o r t h e test. C a p -
4

tured i n Blender.

3. Space Fighter Trident-AlO m o d e l by jamesblake3d: h t t p s : //www. t u r b o s q u i d .


com/3d-models/free-max-model-space-fighter-trident-alO/882913
4. Accent Chest m o d e l by Brandon Westlake: h t t p s : / / w w w . t u r b o s q u i d . c o m /
3d-models/accent-chest-model-1975074

42
4. U S E R T E S T I N G

Results

W i t h o u t u s i n g V I S U A L U V , a l l testers tried to f i n d the f l i p p e d U V i s l a n d


w i t h the texture m e t h o d f r o m the p r e v i o u s test. The texture contained
letters a n d n u m b e r s , so the testers e x p e c t e d to f i n d t h e m f l i p p e d
on some parts of the m o d e l s . H o w e v e r , none of the testers c o u l d o n l y
f i n d the f a u l t y U V i s l a n d w i t h i n the time l i m i t .
U s i n g V I S U A L U V , a l l testers f o u n d the d e s i r e d U V i s l a n d s w i t h i n
seconds. A f t e r t u r n i n g o n the U V N o r m a l s overlay, they o n l y needed
a glance to see a spot o n the m o d e l a n d its U V m a p w i t h a different
color t h a n the rest.

4.4 Split Seams Test

In this test, the testers w o r k e d w i t h t w o m o d e l s of s y m m e t r i c a l heads


of creatures. B o t h of these m o d e l s ' o r i g i n a l U V m a p s h a d s y m m e t r i -
cally u n w r a p p e d U V islands, but for this test, their seams were altered
i n a w a y that each m o d e l h a d one s e a m s p l i t i n one edge. A f t e r a u -
t o m a t i c a l l y u n w r a p p i n g the m o d e l w i t h the altered seams, the n e w
U V m a p w o u l d l o o k a s y m m e t r i c a l at first glance. T h e testers h a d to
f i n d the p r o b l e m a t i c edge o n the 3 D m o d e l .

Models

The first m o d e l for this test w a s a h u m a n h e a d . It w a s altered to have


a split seam b e h i n d the left ear, so it w o u l d become part of the n e w l y
u n w r a p p e d face U V i s l a n d , w h i l e the r i g h t ear w o u l d keep its o w n
U V i s l a n d . See F i g u r e 4.7.
T h e s e c o n d m o d e l represented a d r a g o n h e a d . It w a s altered to
have a split seam i n the slot for the right eye, w h i c h distorts the U V m a p
s i m i l a r l y to the p r e v i o u s m o d e l . See F i g u r e 4.8.

43
4- U S E R T E S T I N G

Figure 4.7: Split seam o n the h u m a n h e a d m o d e l causing a s y m m e t r y


5

i n its U V i s l a n d . C a p t u r e d i n Blender.

Figure 4.8: Split seam o n the d r a g o n h e a d m o d e l causing a s y m m e t r y


6

i n its U V i s l a n d . C a p t u r e d i n Blender.

5. H u m a n H e a d model by Mgr.art. Helena Lukášova, A r t D .


6. Dragon head model by R N D r . Filip Opálený

44
4. U S E R T E S T I N G

Results

W i t h o u t V I S U A L U V , a l l testers f o u n d the m i s s i n g l i n k w i t h i n the time


l i m i t . M o s t testers q u i c k l y i d e n t i f i e d the p r o b l e m a t i c p a r t of the U V
m a p a n d started to l o o k for the split seam o n the c o r r e s p o n d i n g part
of the 3 D m o d e l .
M o s t testers f a i r e d w o r s e w i t h V I S U A L U V t h a n w i t h o u t it. S o m e
t r i e d to use the O v e r l a p p i n g U V s overlay at first b u t w e r e s u r p r i s e d
w h e n n o U V s w e r e h i g h l i g h t e d . O t h e r s r e a l i z e d that the C o l o r e d
U V Islands overlay w o u l d indicate w h i c h part of the m o d e l contained
the p r o b l e m a t i c s e a m because t w o s e e m i n g l y separate U V i s l a n d s
w o u l d share the s a m e color. A n o t h e r a p p r o a c h w a s u s i n g the U V
Stretching overlay, w h i c h exposed the problematic part of the U V m a p .
H o w e v e r , the h i g h e r geometry count of the m o d e l s caused V I S U A L U V
to stutter between recalculations, w h i c h m a d e some testers p a n i c a n d
click the m o u s e a n d p u s h keys. It m a d e the a d d - o n recalculate again,
causing more stutters. Some testers t u r n e d off the A u t o - U p d a t e feature
to suppress the stutters b u t forgot to m a n u a l l y update after d o i n g some
changes i n the overlay, m a k i n g t h e m t h i n k they h a d b r o k e n something.
For complete time results, see F i g u r e 4.9.

Split Seams Test


I Without VisualUV • With VisualUV

Olm : 00s 01m : 30s 02m : 00s 02m : 30s 03m : 00s 03m : 30s

Figure 4.9: G r a p h of results of the S p l i t Seams Test

45
4. U S E R T E S T I N G

4.5 Test Observations


The U V Stretching a n d F l i p p e d U V s tests s h o w that V I S U A L U V ' S tools
for v i s u a l i z i n g their related U V m a p p i n g errors are u s e f u l a d d i t i o n s
to Blender. In the F l i p p e d U V test, no participant c o u l d f i n d the error
w i t h o u t the a d d - o n w i t h i n the t i m e l i m i t of f o u r m i n u t e s , b u t w i t h
V I S U A L U V , the average time for f i n d i n g the error w a s just 2 4 seconds.
In the U V stretching test, a l l testers f o u n d the error w i t h B l e n d e r ' s
default tools, b u t w i t h V I S U A L U V , it took t h e m significantly less time
to f i n d the error, as the average t i m e i m p r o v e m e n t exceeded 6 5 % .
T h e S p l i t S e a m Test n o t i c e d m o r e t h a n 3 6 % w o r s e average t i m e
w i t h V I S U A L U V . T W O factors m i g h t have c a u s e d this. Firstly, the test
environment m i g h t have been set u p so that the U V m a p issues caused
b y the s p l i t seams w e r e too easy to spot, e v e n w i t h o u t the a d d - o n .
T h e other p o s s i b l e factor c o u l d have b e e n the frequent s t u t t e r i n g
caused b y V I S U A L U V p e r f o r m a n c e o n h i g h g e o m e t r y count m o d e l s .
A t the e n d of each test session, the tester c o u l d voice their o p i n i o n
about the a d d - o n . A l l testers agreed that V I S U A L U V is a v a l u a b l e t o o l
for U V m a p p i n g i n Blender. T h e y saw the overlays for stretching a n d
f l i p p e d U V s as a b i g step u p f r o m w h a t Blender offers. They a d m i t t e d
that the stuttering caused b y l o n g recalculations m a d e their w o r k a bit
harder, b u t they a c k n o w l e d g e d that the tools they u s e d w e r e h a n d y
for getting q u i c k l y oriented i n the U V m a p . A n o t h e r insight f r o m some
users w a s that t h e y felt a b i t o v e r w h e l m e d b y several n e w features
at once, b u t they s a i d they w o u l d get u s e d to the w o r k f l o w after some
m o r e t i m e . A n i n t e r e s t i n g o b s e r v a t i o n f r o m this test's p r e p a r a t i o n
is that U V maps of m a n y p u b l i c l y available m o d e l s contain errors like
extreme U V stretching a n d f l i p p e d U V s , i n c l u d i n g Blender's Suzanne.

4.6 Public Release


V I S U A L U V has b e e n released to the p u b l i c free of charge. It has b e e n
p r o m o t e d o n several Blender-related websites. A t the t i m e of w r i t i n g
this thesis, d o z e n s of users v i e w e d these p r o m o t i o n a l articles, a n d
the a d d - o n has been d o w n l o a d e d over thirty times f r o m its h o m e p a g e 1

o n G u m r o a d . Its source code is also available o n G i t L a b . 2

1. VISUALUV'S homepage on G u m r o a d : h t t p s : / / w e r e c a t . gumroad. com/1/ezkqi


2. VISUALUV'S homepage on G i t L a b : h t t p s : / / g i t l a b . f i . m u n i . c z / x b i l e k 2 /
visual-uv

46
5 Limitations and Future Possibilities
B l e n d e r A P I receives u p d a t e s w i t h e v e r y n e w v e r s i o n of Blender,
so future i m p r o v e m e n t s m i g h t be possible. V I S U A L U V ' S p e r f o r m a n c e
w o u l d significantly benefit f r o m a n e x p a n d e d event system, some w a y
to recalculate o n l y parts of the m e s h affected b y changes, a n d m o r e
extensive s u p p o r t for t h r e a d i n g .
A specific h u r d l e i n d r a w i n g the W i r e f r a m e overlay was h i g h l i g h t -
i n g the selected vertices, edges, a n d faces. W h e n a user selects a part of
the m e s h , B l e n d e r fires a m o u s e - c l i c k or m o u s e - d r a g event. It signals
to V I S U A L U V that it s h o u l d recalculate to u p d a t e the W i r e f r a m e over-
lay. H o w e v e r , internally, Blender still has not u p d a t e d the i n f o r m a t i o n
about the selected geometry inside the m e s h , so V I S U A L U V c o u l d not
v i s u a l i z e the changes. T h e d o c u m e n t a t i o n does not specify at w h i c h
p o i n t the u p d a t e h a p p e n s . V I S U A L U V tries to c i r c u m v e n t this b y de-
l a y i n g the r e c a l c u l a t i o n of selection u n t i l a later event. H o w e v e r , this
w o r k s o n l y w h e n the user selects a n i n d i v i d u a l vertex, edge, or face,
a n d the delay creates the u n d e s i r e d i l l u s i o n of unresponsiveness.
O n e of the m o s t notable s h o r t c o m i n g s of the a d d - o n is the l o n g
time of recalculation. T h e r e c a l c u l a t i o n m e t h o d needs to iterate over
a l l p o l y g o n s of the m e s h e v e r y t i m e , e v e n t h o u g h o n l y a s m a l l p a r t
of it c o u l d have b e e n affected b y changes. V I S U A L U V w o u l d greatly
benefit f r o m some system for retrieving i n f o r m a t i o n about w h i c h part
of the m e s h needs r e c a l c u l a t i o n , s i g n i f i c a n t l y b o o s t i n g p e r f o r m a n c e .
A n o t h e r p o s s i b l e w a y to m a k e c a l c u l a t i o n s faster c o u l d be the use
of t h r e a d i n g . T h e A P I a l l o w s u s i n g the t h r e a d i n g m o d u l e , b u t d u r -
i n g V I S U A L U V ' S d e v e l o p m e n t , several tries have b e e n m a d e to s p l i t
the r e c a l c u l a t i o n b e t w e e n m u l t i p l e threads w i t h o u t r e a c h i n g better
time results.

47
Conclusion
T h i s thesis f o c u s e d o n e x p a n d i n g B l e n d e r w i t h several v i s u a l i z a t i o n
tools for i d e n t i f y i n g c o m m o n errors o c c u r r i n g d u r i n g U V m a p p i n g
that are offered b y the i n d u s t r y s t a n d a r d 3 D g r a p h i c s software, b u t
B l e n d e r lacks.
The first chapter i n t r o d u c e d the topic of U V m a p p i n g a n d U V u n -
w r a p p i n g . It is f o l l o w e d b y a d i s c u s s i o n of c o m m o n errors d u r i n g
these processes. Chapter two surveyed several i n d u s t r y - s t a n d a r d a p p -
lications for 3 D m o d e l i n g a n d h i g h l i g h t e d their features for v i s u a l i -
z i n g the p r e v i o u s l y described errors. It also m e n t i o n e d some options
Blender users have a n d m a d e several observations about w h a t Blender
lacks. The t h i r d chapter discussed the design of a Blender a d d - o n c o n -
t a i n i n g features based o n the observations. It w a s f o l l o w e d b y a brief
i n t r o d u c t i o n to B l e n d e r ' s P y t h o n A P I a n d the a d d - o n ' s i m p l e m e n -
tation. T h e f o u r t h chapter d e s c r i b e d a s m a l l user test c o n d u c t e d to
test the a d d - o n ' s capabilities for i d e n t i f y i n g U V m a p p i n g errors a n d
m a k i n g the U V m a p p i n g w o r k f l o w i n B l e n d e r easier. The test results
indicate that the a d d - o n , even w i t h some shortcomings, is a v a l u a b l e
t o o l for users suitable for use b y the p u b l i c . T h e test also r e v e a l e d
that even famous m o d e l s like Suzanne are not free f r o m U V m a p p i n g
errors. T h e f i n a l chapter m e n t i o n e d s o m e l i m i t a t i o n s a n d p o s s i b l e
solutions for the future d e v e l o p m e n t of the a d d - o n .
T h e p r i m a r y o u t c o m e of this thesis is the V I S U A L U V a d d - o n for
v i s u a l i z i n g U V m a p p i n g errors i n B l e n d e r , w h i c h has b e e n released
to the p u b l i c .

48
A Appendix

Table A.1: Results of Stretched U V s Test of Test G r o u p 1.

Stretched U V s Test - G r o u p 1
Tester Without VisualUV With VisualUV
Tester 1 01m : 43s 00m : 23s
Tester 3 01m : 30s 01m : 15s
Tester 5 00m : 45s 00m : 38s
Tester 7 00m : 35s 00m : 21s

Table A.2: Results of Stretched U V s Test of Test G r o u p 2.

Stretched U V s Test - G r o u p 2
Tester Without VisualUV With VisualUV
Tester 2 03m :l i s 00m : 14s
Tester 4 02m : 12s 00m : 45s
Tester 6 01m : 33s 00m : 13s
Tester 8 00m : 44s 00m : 21s

Table A.3: Results of F l i p p e d U V s Test of Test G r o u p 1.

F l i p p e d U V s Test - G r o u p 1
Tester Without VisualUV With VisualUV
Tester 1 (ran out of time) 00m : 09s
Tester 3 (ran out of time) 00m : 16s
Tester 5 (ran out of time) 00m : 17s
Tester 7 (ran out of time) 00m : 20s

49
A . APPENDIX

Table A.4: Results of F l i p p e d U V s Test of Test G r o u p 2.

F l i p p e d U V s Test - G r o u p 2
Tester Without VisualUV With VisualUV
Tester 2 (ran out of time) 00m : 18s
Tester 4 (ran out of time) 00m : 28s
Tester 6 (ran out of time) 01m : 02s
Tester 8 (ran out of time) 00m : 20s

Table A.5: Results of M i s s i n g S e a m Test of Test G r o u p 1.

M i s s i n g S e a m Test - G r o u p 1
Tester Without VisualUV With VisualUV
Tester 1 01m : 56s 02m : 01s
Tester 3 01m : 00s 03m : 12s
Tester 5 01m : 30s 00m : 57s
Tester 7 00m : 9s 01m : 37s

Table A.6: Results of M i s s i n g S e a m Test of Test G r o u p 2.

M i s s i n g S e a m Test - G r o u p 2
Tester Without VisualUV With VisualUV
Tester 2 01m : 47s 02m : 18s
Tester 4 03m : 13s 01m : 48s
Tester 6 00m : 36s 03m : 06s
Tester 8 01m : 14s 00m : 35s

50
Bibliography
1. R O O S E N D A A L , T o n . Blender foundation annual report 2021 —
blender.org [ o n l i n e ] , b l e n d e r . o r g , 2022-12-21 [ v i s i t e d o n 2023-
04-04]. A v a i l a b l e f r o m : h t t p s : / /www . b l e n d e r . o r g / p r e s s /
blender-foundation-annual-report-2021.
2. H E C K B E R T , P a u l S. S u r v e y of texture m a p p i n g . IEEE Computer
Graphics and Applications [ o n l i n e ] . 1986, v o l . 6, n o . 11, p p . 5 6 -
67 [ v i s i t e d o n 2023-05-01]. ISSN 0272-1716. A v a i l a b l e f r o m D O I :
10.1109/mcg.1986.276672.
3. F L A V E L L , L a n c e . Beginning blender [ o n l i n e ] . A p r e s s , 2010 [vis-
ited o n 2023-04-04]. ISBN 9781430231264. A v a i l a b l e f r o m DOI: 10.
1007/978-1-4302-3127-1.
4. F U R H T , B o r k o . Encyclopedia of multimedia. S p r i n g e r Science &
Business M e d i a , 2008. ISBN 978-0-387-74724-8.
5. B L A I N , J o h n M . The complete guide to blender graphics [ o n l i n e ] .
A K P e t e r s / C R C Press, 2016 [ v i s i t e d o n 2023-04-04]. I S B N
9780429156021. A v a i l a b l e f r o m DOI: 1 0 . 1 2 0 1 / b l 9 7 3 4 .
6. T O B L E R , Robert F ; M A I E R H O F E R , S. A m e s h data structure
for r e n d e r i n g a n d s u b d i v i s i o n . In: WSCG '2006: Short Papers Pro-
ceedings: The 14-th International Conference in Central Europe on
Computer Graphics, Visualization and Computer Vision 2006. P l z e n ,
C z e c h R e p u b l i c : U n i v e r s i t y of West B o h e m i a , 2006, p p . 157-162.
7. B E N N I S , C h a k i b ; V E Z I E N , Jean-Marc; I G L E S I A S , Gerard.
Piecewise surface flattening for n o n - d i s t o r t e d texture m a p p i n g .
ACM SIGGRAPH Computer Graphics [online]. 1991, v o l . 25, n o . 4,
p p . 237-246 [ v i s i t e d o n 2023-04-16]. ISSN 0097-8930. A v a i l a b l e
f r o m DOI: 10.1145/127719.122744.
8. Y U K S E L , C e m ; L E F E B V R E , Sylvain; T A R I N I , M a r c o . Rethink-
i n g Texture M a p p i n g . Computer Graphics Forum [ o n l i n e ] . 2019,
vol. 38, n o . 2, p p . 535-551 [visited o n 2023-04-04]. ISSN 1467-8659.
A v a i l a b l e f r o m DOI: 1 0 . 1 1 1 1 / c g f . 13656.
9. Working with UVMaps [online]. F o u n d r y L e a r n [visited o n 2023-
04-04]. A v a i l a b l e f r o m : h t t p s : / / l e a r n . f o u n d r y . com/modo/
content/help/pages/uving/working_with_uvmaps.html.

51
BIBLIOGRAPHY

10. Non-Overlapping uvs [online]. 3 D M o d e l i n g Resources [visited o n


2023-04-04]. A v a i l a b l e f r o m : h t t p s : / / r e s o u r c e s . t u r b o s q u i d .
com/training/textures-materials/non-overlapping-uvs.
11. Blender foundation — blender.org [online], blender.org [visited o n
2023-04-04]. A v a i l a b l e f r o m : h t t p s : / / w w w . b l e n d e r . o r g / a b o u t /
foundation.
12. 2024features \ autodesk [online]. A u t o d e s k | 3 D D e s i g n , Engineer-
i n g & C o n s t r u c t i o n Software [visited o n 2023-04-04]. A v a i l a b l e
f r o m : h t t p s : //www. a u t o d e s k . c o m / p r o d u c t s / m a y a / f e a t u r e s .
13. Maya gets oscarfor technical achievement [online]. M a c w o r l d [vis-
i t e d o n 2023-04-04]. A v a i l a b l e f r o m : h t t p s : / /www . macworld .
com/article/157549/oscar.html.
14. Help [online]. P r o d u c t D o c u m e n t a t i o n | A u t o d e s k H e l p [visited
o n 2023-05-01]. A v a i l a b l e f r o m : h t t p s : / / h e l p . a u t o d e s k . com/
view / MAYAUL / 2022 / ENU / ?guid=GUID - 764C4EB5 - 7050 - 477B -
B866-76FE86758E7D.
15. 3ds max features \ 2024features \ autodesk [ o n l i n e ] . A u t o d e s k | 3 D
D e s i g n , E n g i n e e r i n g & C o n s t r u c t i o n Software [visited o n 2023-
04-04]. A v a i l a b l e f r o m : h t t p s : / / w w w . a u t o d e s k . c o m / p r o d u c t s /
3ds-max/features.
16. Autodesk for games [ o n l i n e ] . A u t o d e s k | 3 D D e s i g n , E n g i n e e r i n g
& C o n s t r u c t i o n Software [visited o n 2023-04-04]. A v a i l a b l e f r o m :
https://www.autodesk.com/campaigns/autodesk-for-games.
17. FX Features | SideFX [online]. H o u d i n i - 3 D m o d e l i n g , animation,
V F X , l o o k development, l i g h t i n g a n d r e n d e r i n g | S i d e F X [visited
o n 2023-04-04]. A v a i l a b l e f r o m : h t t p s : / /www . s i d e f x . c o m /
products/houdini/fx-features.
18. Film & TV | SideFX [online]. H o u d i n i - 3 D m o d e l i n g , a n i m a t i o n ,
V F X , l o o k development, l i g h t i n g a n d r e n d e r i n g | S i d e F X [visited
o n 2023-04-04]. A v a i l a b l e f r o m : h t t p s : / /www . s i d e f x . c o m /
industries/filmtv.
19. Modo features \ 3D rendering and design tools [ o n l i n e ] . F o u n d r y
[visited o n 2023-04-04]. A v a i l a b l e f r o m : h t t p s : //www. f o u n d r y .
com/products/modo/features.

52
BIBLIOGRAPHY

20. Y O T , R i c h a r d . Why modo? [online]. R i c h a r d Yot [visited o n 2023-


04-04]. A v a i l a b l e f r o m : h t t p s : / / r i c h a r d y o t . c o m / b l o g / 2 0 1 8 /
8/24/why-modo.
21. UV viewport [ o n l i n e ] . F o u n d r y L e a r n [ v i s i t e d o n 2023-04-04].
Available from: https : / / l e a r n . foundry . com/modo/content/
help/pages/modo_interface/uv_viewport.html.
22. ZBrush 2022 [ o n l i n e ] . Z B r u s h - T h e a l l - i n - o n e - d i g i t a l sculpt-
i n g s o l u t i o n [ v i s i t e d o n 2023-04-04]. A v a i l a b l e f r o m : h t t p : / /
pixologic.com/features/about-zbrush.php.
23. Pixologic:: ZBrush :: UV Master. ZBrush [online]. Z B r u s h - The a l l -
i n - o n e - d i g i t a l s c u l p t i n g s o l u t i o n [visited o n 2023-04-04]. A v a i l -
able f r o m : h t t p s : / / p i x o l o g i c . c o m / z b r u s h / f e a t u r e s / U V -
Master.
24. 3 D modeling, texturing, lighting, animation and simulation software
[online]. M a x o n [visited o n 2023-04-04]. A v a i l a b l e f r o m : h t t p s :
//www.sidefx.com/industries/filmtv.
25. The future ofOpenGL [online]. K h r o n o s F o r u m s [visited o n 2023-
04-23]. A v a i l a b l e f r o m : h t t p s : / / c o m m u n i t y . khronos . o r g / t /
the-future-of-opengl/106317/2.
26. Blender vulkan - status report [online]. D e v e l o p e r F o r u m [visited
o n 2023-04-16]. A v a i l a b l e f r o m : h t t p s : / / d e v t a l k . b l e n d e r . o r g /
t/blender-vulkan-status-report/25706.
27. S I D D I , Francesco. Introducing the blender metal viewport — devel-
oper blog [ o n l i n e ] . D e v e l o p e r B l o g , 2023-01-13 [ v i s i t e d o n 2023-
04-16]. A v a i l a b l e f r o m : h t t p s : / / c o d e . b l e n d e r . o r g / 2 0 2 3 / 0 1 /
introducing-the-blender-metal-viewport/.

53

You might also like