crypt of decay - July 20th, 2017 [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

July 20th, 2017

курва безье, памятка себе [Jul. 20th, 2017|06:27 pm]
[Tags|]

когда надо быстренько, несколькими точками ебануть кривую безье.
  // evaluate a point on a bezier-curve. t goes from 0 to 1
  static VT bezierAt(VT) (float t, const(VT)[] pts...) if (IsVectorDim!(VT, 2)) {
    assert(pts.length == 3 || pts.length == 4); // quadratic or cubic
    VT[4][2] xpts;
    xpts[0][0..pts.length] = pts[];
    int curidx = 0;
    foreach (immutable lc; 1..pts.length) {
      foreach (immutable idx; 0..pts.length-lc) xpts[1-curidx][idx] = xpts[curidx][idx].lerp(xpts[curidx][idx+1], t);
      curidx ^= 1;
    }
    return xpts[curidx][0];
  }

  enum BezierPoints = 16;
  foreach (immutable int pn; 0..BezierPoints) {
    float t = cast(float)pn/cast(float)(BezierPoints-1);
    auto pt = bezierAt(t, pt0, pt1, pt2); // you may add pt3 too
    drawPixel(pt);
  }

и конвертация quadratic в cubic:
VT[4] bezier2cubic(VT) (in auto ref VT v0, in auto ref VT v1, in auto ref VT v2) if (IsVectorDim!(VT, 2)) {
  auto np0 = v0+(v1-v0)*2/3;
  auto np1 = v2+(v1-v2)*2/3;
  return [v0, np0, np1, v2];
}
Linkmeow!

кстати, ещё про хронос [Jul. 20th, 2017|07:50 pm]
чего нормального в принципе ожидать от уебанов, которые спеки для биндингов делают вот так:
<proto><ptype>Bool</ptype> <name>glXQueryExtension</name></proto>
но рядом же:
<param>int *<name>errorb</name></param>

ага. рандомный набор хуйни мы выделим в типы, остальное оставим как есть, а указатели тупо снежинками, хуле. эта вот поеботина предлагается для машинного парзинга. как и полагается — одинаково хуёво подходит как для парзинга глазами, так и для парзинга парзером. и вот так у них абсолютно всё.
Link12 meows|meow!

Quake 2 [Jul. 20th, 2017|08:14 pm]
новое платье короля: Berserker Engine. не забудьте взять supplementary files.

всё вместе превращает второквак в такой себе дум3. менее скучным второквак от этого, конечно, не становится, но ещё разик пройти, разглядывая, как бы оно было, если бы движок д3 появился тогда (и в игру щедро насыпали визуальных свистоперделок, бессмысленно и беспощадно) — вполне можно.


p.s.: не знаю, что он там забыл доложить, но если брать файло с гуглодрайва, то модель квэйкгая поломана до сегфолта. её надо взять из вот отсюда, и конвертнуть все файлы в нижний регистр. в остальном нормально собирается под жмупинус, и вполне работает. кроме xatrix/rogue — для них нету game.so, так что у xatrix, например, не хватает витальных лифтов, а в роге хуй знает.
Link12 meows|meow!

navigation
[ viewing | July 20th, 2017 ]
[ go | Previous Day|Next Day ]