Tag Archives: geometry

Nov 12 2014

Primitive SOP tutorial.

The Primitive SOP. TouchDesigner 088. 2014.
Understanding the basic functions of the Primitive SOP is a crucial part of understanding Surface Operators in TouchDesigner.

1
00:00:00,367 –> 00:00:03,000
Let’s examine the primitive SOP.

2
00:00:03,000 –> 00:00:10,500
In Touch Designer, primitives
are a part of the complex
landscape of geometry types.

3
00:00:10,500 –> 00:00:16,800
In this tutorial, I’ll
concentrate on one familiar
aspect of primitives.

4
00:00:16,800 –> 00:00:22,733
They can be analogous to faces
in other 3D modeling software.

5
00:00:22,733 –> 00:00:31,100
Here we start with a box SOP. We
use an info CHOP to examine some
details.

6
00:00:31,100 –> 00:00:40,300
With these parameter settings,
the box SOP has 6 primitives-
one for each distinct side.

7
00:00:40,300 –> 00:00:46,767
We can access and manipulate
each of these primitives by
using the primitive SOP.

8
00:00:46,767 –> 00:00:54,767
I’ve applied a scale factor of
75% to each of the 6 incoming
primitives.

9
00:00:54,767 –> 00:01:02,767
As I adjust the scale values in
X, Y, and Z, you can see the
effect of the primitive SOP.

10
00:01:02,767 –> 00:01:04,000

11
00:01:04,000 –> 00:01:11,200
In the second example, I use a
geometry component as a “Look
At” target for each primitive.

12
00:01:11,200 –> 00:01:12,867

13
00:01:12,867 –> 00:01:29,600
Each primitive can be
manipulated independently, and
as I move the target geometry in
3D space, you’ll see the
primitives adjust their rotation
to maintain a line of sight to
the target.

14
00:01:29,600 –> 00:01:31,833

15
00:01:31,833 –> 00:01:35,267
Primitives contain points and
vertices.

16
00:01:35,267 –> 00:01:38,667
We can access vertices and
reorder them.

17
00:01:38,667 –> 00:01:44,500
In this example we flip the
vertex normals of each
primitive.

18
00:01:44,500 –> 00:01:46,367

19
00:01:46,367 –> 00:01:52,667
We start by enabling the display
of vertices and normals in the
SOP viewport.

20
00:01:52,667 –> 00:01:54,100

21
00:01:54,100 –> 00:02:01,767
The direction of the pink line
shows the normal, and the
vertices are numbered in order.

22
00:02:01,767 –> 00:02:09,667
In the “Face/ Hull” parameters
tab, we can change the vertex
parameter to “Reverse”.

23
00:02:09,667 –> 00:02:11,000

24
00:02:11,000 –> 00:02:19,667
Now the winding of the vertex
order is reversed, and our
normals point inward instead of
outward.

25
00:02:19,667 –> 00:02:22,433

26
00:02:22,433 –> 00:02:28,933
We can use the primitive SOP to
create amazing geometric
structures.

27
00:02:28,933 –> 00:02:37,967
We can use one object with many
parameterized primitives to
guide the placement of other
objects.

28
00:02:37,967 –> 00:02:48,100
In this example, we place a
conical tube along the normal
every primitive in a sphere SOP.

29
00:02:48,100 –> 00:03:00,500
We start with a sphere, and I’ve
wired info CHOPs to these SOPs
to help us track the progressive
effects of this network.

30
00:03:00,500 –> 00:03:08,700
When we create the initial
sphere, it’s points are welded
together, giving us a grand
total of 92.

31
00:03:08,700 –> 00:03:16,000
The facet SOP will make these
points independent, but maintain
the shape of the primitives.

32
00:03:16,000 –> 00:03:17,267

33
00:03:17,267 –> 00:03:25,833
When we scale each primitive
using this primitive SOP, we see
that each primitive is a
triangle.

34
00:03:25,833 –> 00:03:33,300
Each triangle primitive is
comprised of three points, each
with their own point normal.

35
00:03:33,300 –> 00:03:34,900

36
00:03:34,900 –> 00:03:44,967
What we want to do, is to place
1 normal at the center of each
triangle, averaging the 3 points
down to 1.

37
00:03:44,967 –> 00:03:47,800

38
00:03:47,800 –> 00:03:53,267
The next primitive SOP finishes
what we started with the first
primitive SOP.

39
00:03:53,267 –> 00:03:58,533
We scale the primitives down to
0% their original size.

40
00:03:58,533 –> 00:04:05,767
But, we still have 3 points and
3 normals for each primitive.

41
00:04:05,767 –> 00:04:07,667

42
00:04:07,667 –> 00:04:15,367
We use a facet SOP to weld the 3
points of each primitive back
down to 1.

43
00:04:15,367 –> 00:04:24,500
This is achieved with a
proximity threshold- any points
that are within the range of
closeness will be welded
together.

44
00:04:24,500 –> 00:04:25,767

45
00:04:25,767 –> 00:04:35,800
Finally, we use a copy SOP to
place a copy of the tube SOP at
each of the incoming points.

46
00:04:35,800 –> 00:04:37,433

47
00:04:37,433 –> 00:04:44,967
Now we have created a geometric
structure that would be
difficult to produce using other
methods.

48
00:04:44,967 –> 00:04:50,367
We can of course, alter this
structure anyway we need to.

49
00:04:50,367 –> 00:04:51,667

50
00:04:51,667 –> 00:05:01,667
For example, I’ll bypass the
last facet SOP, and now we have
3 tubes for each incoming
primitive.

51
00:05:01,667 –> 00:05:03,667