All streams
Search
Write a publication
Pull to refresh
4
0
Send message

Массив размером 256*(sizeof int)=1Kb? Можно и без массива и без ветвлений, например:

char c ; // input

char t ; // temp

int res = 0;

...

t = c ^ 's'; res += (int)((~t &(t-1)) >> 7) & 1;

t = c ^ 'p'; res -= (int)((~t &(t-1)) >> 7) & 1;

на ассеблере будет еще компактнее (можно задвигать знаковый бит в флаг переноса);

Идею уловил. Но вот безобидное "активация гена" это те еще дебри. Активация участка ДНК в условиях постоянного клеточного деления для меня это та еще магия :)

За терминологию спасибо. Не понятно вот что: клетки деляться, при этом ДНК копируются целиком. РНК и белки это штуки производные. В каком месте этого процесса фиксируется "положение на чертеже"?

Всегда не понимал один момент. Организм растет как по чертежу: пальцы обычно растут на руках а не на затылке. То что по ДНК синтезируются белки это понятно. Лично мне не понятно как по одной ДНК (хромосомному набору) все растет на нужных местах нужной гистологии, формы и размера (локальное управление трофикой). Поняв это будет легче рассуждать почему ребенок похож на соседа.

Можно еще не от квадрата круг апроксимировать, а от шести-, пяти- и прочих угольников. Может получиться точнее.

Это все для четырех-угольников? А как же трех- или пяти- угольники?

В Quake был не Z-buffer, поэтому такой вид оптимизации не применялся.

Для алгоритма стенцил-буфера нужен Z-buffer. Я правильно понял что движок из статьи его не использует?

1) BSP это не про координаты вершин, это про сортировку статической (не динамической) геометрии

2) Во времена Wolfenstein и Doom это помогало. Что изменилось?

Ни чего не мешает добавить вокселям нормали и любые другие параметры.

1) Интерполированная анимация с BSP не дружит (интерполяция между фреймами анимации). Кстати, что произойдет при пересечении нескольких динамических мешей? Как тогда будут сортироваться полигоны разных мешей?

2) Трюки с растеризацией это примерно так: у полигона есть направление вдоль которого коррекция перспективы не нужна (например для пола - горизонталь, для стены - вертикаль). Растеризовать можно по четырем направлениям: по строкам, по столбцам и по двум диагоналям. Если для произвольного полигона выбирать один из четырех наиболее подходящих случаев, то "изгиб" корреции перспективы будет небольшим. В таком случае есть смысл дробить полигон, только не на N пикселей, а на равные сегменты, их количество будет не так уж велико.

Замороченные манипуляци с BSP деревьями для рисования ститеческой и динамической геометрии. К тому же для интерполированной или скелетной анимации BSP просто так не (пере)построишь.Quake использовал Z-buffer (ну почти).Кстати коррекция перспективы для программного рендеринга имеет много разных трюков, про это в статье мало что было сказано.

Постановка задачи такая: дан некий луч, выходящий из некой точки (например из глаза) в некотором направлении, необходимо найти координаты пересечения с некоторым объектом. Если объект примитвный (шар, тругольник), то найти пересечение за один шаг действительно можно. Но если объект сложно составной (или constructive solid geometry), то простых решений (за один шаг) нет.

Там где оптимизнули расчет площади треугольника просится двойку за скобку вынести:

(2*(A*B + B*C + C*A) + A*A + B*B + C*C) * .0625

или так:

(A*(2*B + A) + B*(2*C + B) + C*(2*A + C)) * .0625

При такой широкой базе лап (тазобедренных суставов) этому существу придется сильно вихлятся при медленной ходьбе.

AFAIK постоянное применение фторсодержащих зубных паст может быть чем то там врендно. Грубо говоря, раз в год купить такую пасту нормально. И от региона еще может зависеть, но в Росии, вроде, фтор-дефицтных регионов особо нет. Правильно ли будет применять фторлак постоянно?

Для объяснения по вашему же примеру лучше разбить по два бита. Если для решения задачи использовать связанные списки, то выделяем дополнительный массив (размером с входной массив) в нем мы храним индекс следующего элемента (или -1 если конец списка). В индекс-массиве из 4 элементов храним первые элементы списка. После первого прохода получаем такое [[0, 1],[-1],[1,2],[-1]]. Каждый подсписок сортируем рекурсивно. Собственно radix-sort позволяет перебирать группы бит как от старших к младшим, так и от младших к старшим, там не принципиально получается.

Ранжируем сначала по старшим битам (например разбив по 8 бит), а затем рекурсивно каждый интервал.

там другая электроника вроде, не бытовая...

Ждем новый тип каплеточильных станков?

Information

Rating
Does not participate
Registered
Activity