Foci FX tutorial with Zy0rg - Part 3

19 min read
tatasz's avatar
By tatasz
27 Favourites
12 Comments
5K Views


If you are not familiar with zy0rg, make sure you check his gallery :love:

2013 by zy0rg Infinitum by zy0rg 7 by zy0rg
Zip by zy0rg Oblivion by zy0rg ...and Again by zy0rg

So, below, we got a not so short log of zy0rg explaining to me and depaz about how to use foci.

Foci FX in Apophysis - Part 3


Just so you have an idea about what is being made, the result go first =D

Download the complete params for this here: tatasz.deviantart.com/art/Foci…


Fairy Tales by depaz Class in a Mental Institution by tatasz

07:03:51 PM <tatasz> but the ones that you folks were spamming before
07:03:55 PM <tatasz> werent overlapping
07:03:59 PM <tatasz> when rotated
07:04:04 PM <zy0rg> you break the line
07:04:17 PM <zy0rg> of parallel to OX squares
07:04:37 PM <zy0rg> so when you rotate it
07:04:47 PM <zy0rg> you need to scale it appropriately
07:04:54 PM <zy0rg> plus
07:05:02 PM <zy0rg> at some angles...
07:05:08 PM <tatasz> zy0rg: :dummy: exactly
07:05:14 PM <tatasz> how do you scale it
07:05:46 PM <zy0rg> tatasz: you'll understand everything with my next example
07:05:52 PM <zy0rg> gimme a sec to make it
07:06:15 PM <tatasz> :eager:
07:12:51 PM <zy0rg>
<flame name="Apophysis-130323-701" version="Apophysis 2.09" size="752 934" center="2.89167469836511 1.57897972994448" scale="53.91" oversample="1" filter="0.2" quality="5" background="0 0 0" brightness="4" gamma="4" gamma_threshold="0.01" >
<xform weight="0.1" color="0" opacity="0" sinusoidal="1" pre_blur="1" coefs="1 0 0 1 0 0" chaos="0 " />
<xform weight="0.5" color="0" opacity="0" linear="1" coefs="1 0 0 1 3.14159 0" chaos="0 " />
<xform weight="0.5" color="0" opacity="0" linear="1" coefs="1 0 0 1 0 -3.14159" chaos="0 " />
<xform weight="0.5" color="0" opacity="0" linear="1" coefs="1 0 0 1 -3.14159 0" chaos="0 " />
<xform weight="0.5" color="0" opacity="0" linear="1" coefs="1 0 0 1 0 3.14159" chaos="0 " />
<xform weight="0.5" color="0" linear="1" coefs="0.799975 0.399988 -0.399988 0.799975 0 0" chaos="1 0 0 0 0 0 " />
<finalxform color="0" symmetry="1" foci="1" coefs="1 0 0 1 0 0" />
<palette count="256" format="RGB">
D2A456ECC86AE3BB62DBAF5BBE8C4BA16A3B945A32884A2A
4C1514420D0B390603360301340100340100340100340100
340100430D0D5821136E351A914F2CB46A3FBF7D48CB9052
F5B46AF9C27AFDD18AFED78CFFDE8EFEDD8CFEDC8BFEDE84
FDD97FE3B668D9AA56D09E45C7923FBF863AC18838C38B37
DBA84AD8A84ED5A953D0A24ECC9C4ABF8E44B2813E96622D
7F4421541A07480D033C0000380000340100340100340100
340100340100340100340100340100340100340100340100
340100340100340100340100340000340000360000390000
4201014503014806014805014804014505014306013E0300
3B0001340000340000340100340100340100340100340100
3401003301003301003101003001002D00002C0100270200
2301002302002601002900002A00002C00002F0000320100
340100340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340100
3401003601003801003B06003E0B004B14005D1D00703408
954714CA6F29D7762FE47D36F28B41EA934BE8984CD89045
B077399556297B351A702E156628104D12083F0103390001
350000340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340100
3401003301003101023001042E01032A02032800042A0102
2C00002E0000300000330100340100340100340100340100
340100340100340100340100340100330000330000330000
330000330000330000330000330000340100340100340300
3905003F0D014717045C250C6F351278420E894E0E8E4D17
81420F7635026929055414054708014305033F00023A0101
390103390002370000340000340100340100340100340100
340100340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340000
3500003702003E07004A13025F250C79411B97632BB9833F
</palette>
</flame>
07:18:18 PM <zy0rg>
<flame name="Apophysis-130323-701" version="Apophysis 2.09" size="752 934" center="2.89167469836511 1.57897972994448" scale="53.91" oversample="1" filter="0.2" quality="5" background="0 0 0" brightness="4" gamma="4" gamma_threshold="0.01" >
<xform weight="0.1" color="0" opacity="0" sinusoidal="1" pre_blur="1" coefs="1 0 0 1 0 0" chaos="0 " />
<xform weight="0.5" color="0" opacity="0" linear="1" coefs="1 0 0 1 3.14159 0" chaos="0 " />
<xform weight="0.5" color="0" opacity="0" linear="1" coefs="1 0 0 1 0 -3.14159" chaos="0 " />
<xform weight="0.5" color="0" opacity="0" linear="1" coefs="1 0 0 1 -3.14159 0" chaos="0 " />
<xform weight="0.5" color="0" opacity="0" linear="1" coefs="1 0 0 1 0 3.14159" chaos="0 " />
<xform weight="0.5" color="0" linear="1" coefs="0.799975 0.399988 -0.399988 0.799975 0 0" chaos="1 0 0 0 0 0 " />
<xform weight="0.01" color="0" linear="1" coefs="1 0 0 0 0 0" chaos="1 0 0 0 0 0 0 0 " />
<xform weight="0.002" color="0" sinusoidal="1" coefs="0 0 0 1 0 0" post="1 0 0 1 6.28318 0" chaos="1 0 0 0 0 0 0 0 " />
<finalxform color="0" symmetry="1" foci="1" coefs="1 0 0 1 0 0" />
<palette count="256" format="RGB">
D2A456ECC86AE3BB62DBAF5BBE8C4BA16A3B945A32884A2A
4C1514420D0B390603360301340100340100340100340100
340100430D0D5821136E351A914F2CB46A3FBF7D48CB9052
F5B46AF9C27AFDD18AFED78CFFDE8EFEDD8CFEDC8BFEDE84
FDD97FE3B668D9AA56D09E45C7923FBF863AC18838C38B37
DBA84AD8A84ED5A953D0A24ECC9C4ABF8E44B2813E96622D
7F4421541A07480D033C0000380000340100340100340100
340100340100340100340100340100340100340100340100
340100340100340100340100340000340000360000390000
4201014503014806014805014804014505014306013E0300
3B0001340000340000340100340100340100340100340100
3401003301003301003101003001002D00002C0100270200
2301002302002601002900002A00002C00002F0000320100
340100340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340100
3401003601003801003B06003E0B004B14005D1D00703408
954714CA6F29D7762FE47D36F28B41EA934BE8984CD89045
B077399556297B351A702E156628104D12083F0103390001
350000340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340100
3401003301003101023001042E01032A02032800042A0102
2C00002E0000300000330100340100340100340100340100
340100340100340100340100340100330000330000330000
330000330000330000330000330000340100340100340300
3905003F0D014717045C250C6F351278420E894E0E8E4D17
81420F7635026929055414054708014305033F00023A0101
390103390002370000340000340100340100340100340100
340100340100340100340100340100340100340100340100
340100340100340100340100340100340100340100340000
3500003702003E07004A13025F250C79411B97632BB9833F
</palette>
</flame>
07:19:06 PM <tatasz> zy0rg: hmmm i think i got it
07:19:17 PM <depaz> zy0rg: :giggle: that shown that way more clear :P
07:19:29 PM <zy0rg> lol
07:19:58 PM <zy0rg> now the math part
07:20:06 PM <tatasz> :eager:
07:20:08 PM <depaz> zy0rg: the rotation part right?
07:20:22 PM <depaz> :meow:
07:20:23 PM <zy0rg> both rotation and scaling
07:20:28 PM <zy0rg> as I found out...
07:20:30 PM <depaz> ok
07:20:38 PM <zy0rg> foci input width is not pi
07:20:44 PM <zy0rg> it's 2pi
07:21:03 PM <zy0rg> clearly visible in last params
07:21:16 PM <tatasz> yup
07:22:17 PM <zy0rg> don't know how to describe it better :D
07:22:19 PM <depaz> zy0rg: since the standard tiling is pi, yeah
07:22:23 PM <tatasz> for 0 and 45 that doesnt matter
07:22:42 PM <tatasz> or just make it 2pi
07:22:54 PM <zy0rg> then we need x / y to be some simple number
07:23:01 PM <zy0rg> 2 for example
07:23:16 PM <zy0rg> x/y = tg(a)
07:23:35 PM <zy0rg> so to find a we need atan(x/y)
07:23:44 PM <depaz> :faint:
07:23:47 PM <zy0rg> everything clear so far?
07:23:58 PM <zy0rg> [link]
07:24:25 PM <zy0rg> so we get 63.43o
07:24:54 PM <zy0rg> you can see that angle in params
07:25:04 PM <tatasz> zy0rg: wait, whats the x and y here?
07:25:30 PM <zy0rg> tatasz: x and y are "tiling units"
07:26:02 PM <tatasz> zy0rg: hmm how do we find them in this last example?
07:26:15 PM <zy0rg> x is 1 and y is 2 in our example
07:26:32 PM <zy0rg> one x on two x units
07:26:40 PM <zy0rg> one x on two y
07:26:41 PM <tatasz> zy0rg: :faint: i dont see it
07:26:45 PM <zy0rg> damn typos
07:26:53 PM <zy0rg> :roll:
07:27:04 PM <zy0rg> okay
07:27:06 PM <depaz> zy0rg: I neither see it... :confused:
07:27:09 PM <zy0rg> let me photoshop it
07:27:16 PM <tatasz> zy0rg: yes please :eager:

Foci Tut(1) by tatasz

07:31:17 PM <tatasz> zy0rg: :hug: omg now i got it
07:31:31 PM <depaz> zy0rg: got it! :D
07:31:41 PM <zy0rg> so
07:31:52 PM <zy0rg> x/y = 2
07:31:56 PM <tatasz> yes
07:32:01 PM <depaz> zy0rg: :nod:
07:32:09 PM <tatasz> lol now its easy =D
07:32:11 PM <zy0rg> atan(x/y) = 63.43
07:32:40 PM <zy0rg> we rotate xForm 6 on that angle
07:32:48 PM <zy0rg> then the second step
07:32:55 PM <tatasz> scale
07:32:58 PM <zy0rg> yup
07:33:10 PM <zy0rg> it's actually quite simple too
07:33:12 PM <depaz> zy0rg: the scaling...
07:33:25 PM <zy0rg> it's cos(alpha)08:21:44 PM <tatasz> zy0rg: still :faint:
08:21:52 PM <tatasz> you said it should be tiled up
08:21:57 PM <tatasz> but its not tiled up
08:21:59 PM <zy0rg> tatasz: no
08:22:02 PM <tatasz> :noes:
08:22:19 PM <zy0rg> I said it's easier to fill it with gasket
08:22:39 PM <zy0rg> but if you have tile then you can fill it with tile too
08:22:52 PM <depaz> zy0rg: I see :), you can safely move it across x and y too?
08:22:59 PM <zy0rg> depaz: yup
08:23:33 PM <zy0rg> also moving it to {x=0, y= pi} makes it placed in the center12:09:53 AM <zy0rg> 1. angle by scale
12:10:00 AM <zy0rg> 2. scale by angle
12:10:28 AM <depaz> zy0rg: which one could we apply here?
12:10:38 AM <zy0rg> I've explained how to get scale by angle earlier today
12:10:56 AM <zy0rg> but I see you decided to pick fixed scale here
12:11:01 AM <zy0rg> pi/2
12:11:24 AM <zy0rg> so we could get propre angle for that scale
12:11:29 AM <zy0rg> *proper
12:11:48 AM <depaz> zy0rg: cos(x/y)*pi to get the scale right?
12:11:57 AM <zy0rg> no
12:12:07 AM <depaz> no??
12:12:09 AM <zy0rg> cos(atan(x/y))*pi
12:12:30 AM <depaz> zy0rg: sorry! that's what I mean, it's just my messy head
12:12:37 AM <depaz> I have it written write here
12:12:53 AM <zy0rg> so we have x=2
12:13:08 AM <zy0rg> no
12:13:10 AM <zy0rg> x=1
12:13:31 AM <zy0rg> y=1.0135
12:13:42 AM <depaz> zy0rg: x is obviously 1 :nod:
12:13:48 AM <depaz> zy0rg: ohhh, got it
12:13:51 AM <depaz> :D
12:14:15 AM <zy0rg> depaz: full bipolar width is 2
12:14:29 AM <zy0rg> depaz: but here it's only half-filled
12:14:35 AM <zy0rg> so 1
12:14:53 AM <zy0rg> let's choose the ratio 4/1
12:15:09 AM <zy0rg> so we need atan(4/1.0135)
12:15:14 AM <depaz> zy0rg: alright :)
12:15:31 AM <zy0rg> 75.78
12:15:42 AM <depaz> 75.78° yep


And a little example by myself:
<flame name="graduation test44" version="Apophysis 7x Version 15C.9" size="801 932" center="0.856 -0.021" scale="40.05" oversample="1" filter="0.2" quality="1" background="0 0 0" brightness="4" gamma="4" gamma_threshold="0.04" estimator_radius="9" estimator_minimum="0" estimator_curve="0.4" enable_de="0" plugins="" new_linear="1" curves="0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1" >
  <xform weight="0.5" color="0" circleblur="1" coefs="1 0 0 1 0 0" chaos="0 1 0 0 0 0 " opacity="0" />
  <xform weight="0.5" color="0" symmetry="1" smartshape="1" coefs="1 0 0 1 0 0" post="0.951057 -0.309017 0.309017 0.951057 0 0" sshape_power="5" sshape_roundstr="0" sshape_roundwidth="1" sshape_distortion="1" sshape_compensation="0" chaos="1 0 " opacity="1" />
  <xform weight="1" color="0" linear="1" coefs="1 0 0 1 2.35 0" chaos="1 0 " opacity="1" />
  <xform weight="1" color="0" linear="1" coefs="1 0 0 1 -2.35 0" chaos="1 0 " opacity="1" />
  <xform weight="1" color="0" linear="1" coefs="1 0 0 -1 0 2" chaos="1 0 " opacity="1" />
  <xform weight="1" color="0" linear="1" coefs="1 0 0 1 -1.185 -3.625" chaos="1 0 " opacity="1" />
  <palette count="256" format="RGB">
     00FF8000C88000A4800080801B9B9B37B7B744C4C452D2D2
     80FFFF64D6E349ADC82476A4004080374E8E6E5C9C8962A2
     A469A9FF80C0E380C0C880C0AD80C09280C08980C08080C0
     B780DBDB80EDFF80FFFF64E3FF49C8FF3BBAFF2EADFF1292
     FF0080C81C64AD295692374989503D806932807D2B809224
     80FF0064E30E49C81C2DAD2912923709893B008040006469
     0049920012E40E10D61C0EC8371B9152295B69342D804000
     805C6E8069A48077DB8D89ED9B9BFFA9A9FFB7B7FFD2D2FF
     EDEDFFFBEED2F7DCA5F3CB79EFBC54ECAE2FDEAE33D0AE37
     B3AE3EA5B24F97B76083BE7F70C69F66CAAE5DCEBE50D3D3
     69BACE9C88C5AF82B3C27CA2C08A94BE9986BAB76AB7D54E
     BAEA4CC0EB5CC6ED6CC9EE74CCEF7CD0F086A3D88577C083
     4AA8823782826D8383A48585BF8686DB8787FF8888E29885
     A9B77E91C47B7AD1787ACE817ACB8B7AC59D7ABEB07AB4CF
     8AB2BFAAAEA0B2AD98BAAC90C4AB86ACAC9E93AEB77BAFCF
     52B1F859BDD761C9B765CFA769D59775E96175E57075E17F
     75DD8E74D6A783CD9C92C491B0B17BCE9F65FF8040F58749
     E2965CDA9C64D2A26CD49A79D69386D9839FDD74B9E165D2
     E35BE3D141D1CC3ACCC734C7B81FB8C645C6D46BD4E192E1
     F8D1F8EACDDFDDC9C7C2C196A7B9658CB0347AAB14699F2F
     59934B2D72932A7886287E7924895F1F95461AA02C17A81B
     176E58175F671751771734951621A9353E89545B6A73794A
     A6A916A6892AA7693EA84A52A92A66AA15738A357F6A558A
     2B94A1209EA516A9A91F9CA0288E9731818F406B804E6D72
     5C6E646970577771498072406F78475E7E4F4C85563B8B5D
     308F62437A6C566676695180892F916E48995361A0387AA8
     1D94B00BA4B52D81B74F5EB8713CBA9419BCAA02BDAD2A95
     B1536CB47B44BABE01BABC02BABA04B9B805B9B506B8B407
     C7C333D6D360E4E28CF3F2B8FDFCD5F4FCDEECFCE6E3FCEF
     D5FDFDD5FDF4D5FDEBD5FDE2D5FDD9D5FED3D5F5DCD4ECE5
     D4E2EFD4D9F8D3D3FEDCD5F5E6D7EBEFD9E2FFDCD2FFC6CC
     FFB0C5FF9ABFFF83B8FF75B4E281C4C58DD3A798E377ACFD
  </palette>
</flame>
You can see the angle here is 18 degrees, while the tile is 2.35 units wide. So a scale and rotation for the FX would be:
Rotation: 18 degrees CW
Scale: cos(90-18)*pi/2.35 (the pi/2.35 scale factor transforms it into a pi units wide tile).


And, as a little challenge, a focified elliptic splits (starting params by :dev C-91:). Try different angles!
<flame name="Apo7X-140123dd-31" version="Apophysis 7x Version 15C.9" size="1920 1200" center="0 0" scale="384" angle="0.208392312688123" rotate="-11.94" oversample="1" filter="0.2" quality="1" background="0 0 0" brightness="43.2695652173913" gamma="1.69" gamma_threshold="0.1014140625" estimator_radius="9" estimator_minimum="0" estimator_curve="0.4" enable_de="0" plugins="" new_linear="1" curves="0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1" >
  <xform weight="0.5" color="0.946475703734905" flatten="1" elliptic="1" coefs="0 -0.625 0.625 0 0 0" chaos="1 0 0 0 0 " opacity="0" />
  <xform weight="0.5" color="0.455618894426152" symmetry="0.9" separation="1" coefs="0 0.976562 -0.976562 0 0 0" separation_x="1" separation_y="0" separation_xinside="-0.864" separation_yinside="-1.757" chaos="0 0 0 0 1 0 " opacity="0" />
  <xform weight="1" color="0.914445819333196" symmetry="1" elliptic="1" coefs="0 -0.8 0.8 0 0 0" chaos="0 0 1 0 1 0 " opacity="1" />
  <xform weight="0.5" color="0.745082566747442" symmetry="0.9" separation="1" coefs="0 5.868939 -5.868939 0 0 0" separation_x="1" separation_y="0" separation_xinside="-0.419" separation_yinside="0.46" chaos="1 0 1 0 0 " opacity="0" />
  <xform weight="0.5" color="0" symmetry="1" falloff2="1" coefs="1 0 0 1 0 0" falloff2_scatter="10" falloff2_mindist="0.5" falloff2_mul_x="1" falloff2_mul_y="0" falloff2_mul_z="0" falloff2_mul_c="0" falloff2_x0="0" falloff2_y0="0" falloff2_z0="0" falloff2_invert="0" falloff2_type="0" chaos="0 0 0 1 0 0 " opacity="0" />
  <xform weight="0.5" color="0" symmetry="1" butterfly="1" coefs="0 -1 1 0 0 0" chaos="0 1 0 0 0 0 " opacity="0" />
  <finalxform color="0" symmetry="1" foci="1" coefs="1.283568 0.665339 -0.665339 1.283568 0 0" />
  <palette count="256" format="RGB">
     46545B4553594353554255584355584254573C504D3A4C4A
     3849473444433444403848433A4B49465A654F6572597080
     5E7588637A906A839C748BA67991AB7E93AF8096B27F97B2
     7F98B27E96B17E94AE7D91A77C91A0829E8A809E7A7E9F6B
     819B6384975C8F904A938634897E29866C2089470E80440F
     774211663F17583E20553B24483E2F3D4B4E41505646555E
     4D5F6C4B5D6A4F626E52646D53666A4C5E5C454B3846462F
     47412749361A453314462A1246281445302046322548352B
     483E3648484549574F50625857695A59685A576458526159
     4D5C5447554A424C433E47443D474B4859544E5F56556658
     5F735F6A7F636E836B7284696F8162697C575E6F55546455
     4C5B59495A5C4B5D645164705A6E81677B947589A68094B5
     879BBD8C9FC08EA1C38EA2C48AA1BF849CB87E97B37B92AF
     7890A8758D9F6C8695617A87576D764F606348524E3F4239
     3733282F291D2A2314291D0F271B0D26180C1E180C19190F
     161D151A1F18191E1919221E202D2B2F3D393D4B4947575A
     5568726779877C8E9D8A9CB194A8C29AAECE9EB6D4A0B7D7
     A2B7D3AAB2CBB0BCC5B7C5CDBAD1D6C5CCD9CBD6D8CCDFDE
     BFE6E3B1D9DEA4CCD699C1CA8CB5BF81AAB07E9EAA87A1B2
     90A4BB98ACC6A0B4D1A2B6D5A5B9DAB3C7EBB0C4E5ADC1DF
     A3B6CE99ACBE939FA78E92918C887F8A7F6E7F645B7C615A
     7A5E59755B5C705860695A68625C704C6477465D6F405667
     3A505E344B5532475031444B2D3F40293B3926322E24312A
     233027222D24222A22222922222823212924222B27242E2A
     2933322E393B303D4032414639495140525E516575566979
     5B6E7E5C6E795D6E755B6B6F59686A5D51425D4A335D4325
     5E401E603E18603F1961401B614924654F2F6774486E824C
     7591517A8F4F7F8D4D8785448E7C378A6521874F17853A0D
     833207822A02832B01852D01852E017E3200853102803605
     7B3B09763D0F7140166D4823634C2E5351434C534C465656
     43565A41565E3E5462415666465A6B4E64755F738762778C
     667C91667B91667B9162768B5C6F814E5E6B4B5A6448565E
  </palette>
</flame>




Published:
© 2014 - 2020 tatasz
Comments12
anonymous's avatar
Join the community to add your comment. Already a deviant? Log In
triptychaos's avatar
Isso aqui está mais pra bruxaria! Crying 
AkuraPare's avatar
thanks for this chat-log :worship:
Klytia70's avatar
Thank you for sharing these useful journals :)
tatasz's avatar
=D welcome
If you get any issues, lemme know =D after zy0rg wasted like 2-3 days, I mastered it =D
luisbc's avatar
Thanks sooo much!!!
fractal2cry's avatar
very interesting thanks for this
lyc's avatar
really atan(x/y) instead of atan(y/x)? :confused:
tatasz's avatar
Actually I am not sure because there are several things in there that are a bit weird, like the cos(90-alpha) which just makes partial sense to me >.<
So i just pasted the log >.<
lyc's avatar
90 - alpha would make sense, since the sign is potentially wrong and it's 90 degrees off by doing atan(x/y) instead of atan2(y,x) - which is specially designed to get the sign right as a function of input quadrant.
tatasz's avatar
Yeah, i guessed the 90 would be because of the sign =)
But... Not dummyproof =(
anonymous's avatar
Join the community to add your comment. Already a deviant? Log In