RU2058600C1 - Специализированный вычислитель для устройств машинной графики - Google Patents
Специализированный вычислитель для устройств машинной графики Download PDFInfo
- Publication number
- RU2058600C1 RU2058600C1 RU94013399A RU94013399A RU2058600C1 RU 2058600 C1 RU2058600 C1 RU 2058600C1 RU 94013399 A RU94013399 A RU 94013399A RU 94013399 A RU94013399 A RU 94013399A RU 2058600 C1 RU2058600 C1 RU 2058600C1
- Authority
- RU
- Russia
- Prior art keywords
- input
- unit
- output
- inputs
- control
- Prior art date
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
Изобретение относится к автоматике и вычислительной технике и может быть использовано в устройствах машинной графики, в частности в системах синтезирования изображений. Цель изобретения - повышение скорости вычислений и сокращение объема оборудования. Сущность изобретения: вычислитель содержит буферные блоки, блок масштабирования, блок преобразования координат, блок исключения изображения невидимых граней объекта, блок селекции элементов изображения объекта по размеру, блок памяти, блок управления. 2 з. п. ф-лы, 4 ил.
Description
Изобретение относится к автоматике и вычислительной технике и может быть использовано в устройствах машинной графики, в частности в системах синтезирования изображений.
Цель изобретения повышение быстродействия и упрощение вычислителя.
На фиг. 1 представлена структурная схема вычислителя; на фиг. 2 функциональная схема блоков масштабирования и преобразования координат; на фиг. 3 _ структурная схема блока селекции элементов изображения объекта по размеру; на фиг. 4 наземная и связанная система координат.
Вычислитель содержит первый буферный блок 1, блок 2 масштабирования, блок 3 преобразования координат, блок 4 исключения изображения невидимых граней объекта, второй буферный блок 5, блок 6 селекции элементов изображения объекта по размеру, блок 7 памяти, блок 8 управления и генератор 9 тактовых импульсов. Позицией 10 обозначена шина данных.
Блок 2 масштабирования содержит селектор 11, регистр 12, элемент ИЛИ 13, триггер 14 и элемент И 15.
Блок 3 преобразования координат содержит умножители 16-18 и сумматор 19.
Блок 6 селекции элементов изображения объекта по размеру содержит блок 20 памяти обратных величин, умножитель 21 и элемент И 22.
Перед началом вычислений в блок 7 памяти заносятся коэффициенты aijматрицы преобразования. Затем в блок 3 преобразования координат через блок 2 масштабирования заносятся текущие координаты объекта, на котором размещен индикатор, например, самолета xc, yc, zc, где они умножаются на матричные коэффициенты. Результаты умножения xc', yc', zc' записываются в блок 7 памяти. Затем в умножители 16, 17 и 18 блока 3 передаются координаты начальной точки первого отображаемого объекта xн, yн, zн, которые умножением на матрицу и суммированием с величинами xc', yc', zc' преобразуются в координаты начальной точки объекта в связанной системе координат xос, yос, zос. В следующем такте в блок 6 записывается максимальный габаритный размер отображаемого объекта и осуществляется операция оценки его размера на экране индикатора. Если размер меньше заранее выбранной величины, например нескольких точек на экране, то с выхода блока 6 в блок 8 управления поступает сигнал исключения данного объекта из изображения.
Если размеры объекта превышают выбранный порог селекции, то производятся, во-первых, аналогичная оценка размера первой грани данного объекта и, во-вторых, оценка ее видимости по затенению путем определения знака скалярного произведения
(1) где вектор единичной нормали к данной грани, приведенный к началу координат связанной системы.
(1) где вектор единичной нормали к данной грани, приведенный к началу координат связанной системы.
Для этого в блок 3 вводятся координаты Nx1, Ny1, Nz1 конца нормали. Скалярное произведение находится по формулам
N =a11 Nx1+a12 Ny1+a13 Nz1
Ny =a21 Nx1+a22 Ny1+a23Nz1 (2)
N =a31 Nx1+a32 Ny1+a33 Nz1
XocN+Yoc•NZocN′Z1 где N , N , N координаты конца нормали в связанной системе координат.
N
Ny
N
XocN+Yoc•NZocN′Z1 где N
Знак скаляра снимается со знакового выхода сумматора 19 блока 3 и запоминается на триггере блока 4. Если знак скаляра положительный, то с выхода блока 4 в блок 8 поступает сигнал исключения данной грани из изображения. После этого производятся операции вычисления повернутых координат начальной точки следующей грани, например X4, Y4, Z4, и селекция этой грани по размеру и затенению. Если знак скаляра отрицательный, то грань видна и осуществляется пересчет в связанную систему координат остальных точек этой грани (например, X1, Y1, Z1; X2, Y2, Z2; X3, Y3, Z3.
Пересчитанные координаты из сумматора 19 блока 3 выводятся на шину 10 данных и записываются в буферный блок 5, откуда поступают на выход вычислителя. Аналогично производится пересчет координат остальных граней данного объекта, после чего осуществляется переход к следующему объекту изображения.
Блок 2 масштабирования работает следующим образом. С целью большей детализации отображаемых объектов разрядная сетка при их записи в базу данных или при подготовке дисплей-файла расширяется на некоторое число n разрядов, величина которого зависит от требований к конкретным системам синтеза изображений. В этом случае объект на больших дальностях, когда его размеры на экране индикатора малы, воспроизводится с меньшим, а на малых дальностях с большим количеством элементов. Для этого l младших разрядов информационных входов первой группы селектора 11 соединены с l старшими разрядами, исключая знаковый, шины 10 данных. Здесь l=k-n 1, где k полная разрядная сетка вычислителя. Информационные входы второй группы селектора 11 соединены с соответствующими разрядами шины 10 данных. Информационные входы первой группы двухпортового регистра 12 соединены с соответствующими разрядами шины 10 данных, а l старших разрядов информационных входов второй группы с l младшими разрядами шины 10 данных. Входы элемента 13 ИЛИ соединены с n старшими (кроме знакового) разрядами шины 10 данных.
При вычислении координаты Xос начальной точки объекта в связанной системе координат сигнал на выходе элемента ИЛИ 13 будет равен единице, если хотя бы один из старших n разрядов равен единице (большая дальность), или нулю, когда все n старших разрядов равны нулю (малая дальность). Это значение фиксируется в качестве масштаба на триггере 14. Если при вычислении координат Zос или Yос на выходе элемента ИЛИ 13 появится "1", что говорит о большом удалении объекта по этим координатам, управляющий сигнал из блока 8 управления через элемент И 15 установит на триггере 14 масштаб большой дальности.
Блок 3 преобразования координат работает следующим образом.
В умножители 16. 17 и 18 через входы первой группы последовательно вводятся первые сомножители значения преобразуемых координат, а через входы вторых групп матричные коэффициенты. Затем в регистр 12 записывается четвертое слагаемое Xс, после чего на выходе сумматора 19 появляется первая преобразованная координата Xос. Затем в множители 16-18 вводится следующая группа матричных коэффициентов, в регистр 12 записывается новое слагаемое Yс, на выходе сумматора 19 появляется следующая преобразованная координата и т. д.
Если возникает необходимость в ускорении процесса вычислений, запись сомножителей в множители 16-18 и четвертого слагаемого в регистр 12 может выполняться одновременно. Для этого в блоке 2 масштабирования необходимо установить дополнительно два селектора 11, подключенных к автономным шинам данных, а блок 7 памяти разделит на четыре автономных блока, подключенных непосредственно к информационным входам регистра 12 и входам вторых групп множителей 16-18. В этом случае преобразованные координаты Xос, Yос, Zос будут выдаваться последовательно за один два такта. Дальнейшее ускорение работы вычислителя может быть достигнуто путем включения в него еще двух блоков 3 преобразования координат, работающих параллельно. При этом все три координаты Xос, Yос, Zос будут вычисляться одновременно.
Блок 6 в простейшем случае может быть реализован на делителе и элементе И. Размер L объекта на экране индикатора оценивается выражением
L=P · Δ / Xос, где Δ максимальный габаритный размер объекта;
P коэффициент перевода угловых размеров наблюдаемого объекта в линейные размеры изображения.
L=P · Δ / Xос, где Δ максимальный габаритный размер объекта;
P коэффициент перевода угловых размеров наблюдаемого объекта в линейные размеры изображения.
Операция деления в известных делителях требует больших затрат машинного времени. Эта операция может быть ускорена при использовании комбинаций умножителя и блока памяти, в который записаны обратные величины. Выходы блока 20 обратных величин подключены к информационным входам второй группы умножителя 21, k-t старших выходов которого подключены к входам элемента И 22 (t число разрядов, определяющих допустимый минимальный размер изображения на экране). Если все k-t старших разрядов равны нулю, с выхода элемента И 22 в блок 8 управления поступает сигнал исключения данного объекта из изображения.
Блок 4 реализуется на триггере, который запоминает знак скалярного произведения на время перехода к отображению следующей грани объекта.
Блок 8 управления может быть построен в виде блока микропрограммного управления, в ПЗУ которого содержатся алгоритмы решения перечисленных выше задач.
Claims (3)
1. СПЕЦИАЛИЗИРОВАННЫЙ ВЫЧИСЛИТЕЛЬ ДЛЯ УСТРОЙСТВ МАШИННОЙ ГРАФИКИ, содержащий блок управления, блок памяти, первый и второй буферные блоки, генератор тактовых импульсов, выход которого подключен к тактовому входу блока управления, первый и второй выходы которого соединены соответственно со стробирующим и управляющим входами первого буферного блока, выход которого соединен с шиной данных, третий и четвертый выходы и входы группы блока управления подключены соответственно к входу запись-считывание, управляющему и адресному входам блока памяти, информационный вход-выход которого соединен с шиной данных, пятый выход блока управления подключен к стробирующему входу второго буферного блока, информационный вход которого соединен с шиной данных, вход-выход блока управления, входы первого буферного блока и выходы второго буферного блока являются входом-выходом вычислителя, отличающийся тем, что он содержит блок масштабирования, блок преобразования координат, блок селекции элементов изображения объекта по размеру и блок исключения изображения невидимых граней объекта, вход-выход блока преобразования координат, информационные входы блока масштабирования и блока селекции элементов изображения объекта по размеру соединены с шиной данных, первый и второй управляющие и стобирующий входы блока масштабирования соединены соответственно с шестым, седьмым и восьмым выходами блока управления, первый и второй выходы блока масштабирования соединены соответственно с вторым и третьим информационными входами блока преобразования координат, стробирующие и управляющий входы которого соединены соответственно с девятым двенадцатым выходами блока управления, выход блока преобразования координат соединен с информационным входом блока исключения изображения невидимых граней объекта, управляющий вход которого подключен к тринадцатому выходу блока управления, а выход к первому информационному входу блока управления, второй информационный вход которого соединен с входом блока селекции элементов изображения объекта по размеру, стробирующий вход которого соединен с четырнадцатым выходом блока управления.
2. Вычислитель по п. 1, отличающийся тем, что блок масштабирования содержит селектор, регистр, триггер, элемент ИЛИ и элемент И, первый вход которого и вход обнуления триггера являются соответственно первым и вторым управляющими входами блока, стробирующим входом которого является стробирующий вход регистра, управляющий вход которого подключен к выходу триггера, соединенному с управляющим входом селектора, выход элемента ИЛИ подключен к второму входу элемента И и информационному входу триггера, стробирующий вход которого соединен с выходом элемента И, входы элемента ИЛИ и информационные входы селектора и регистра являются информационными входами блока.
3. Вычислитель по п. 1, отличающийся тем, что блок преобразования координат содержит первый, второй и третий умножители и сумматор, первые информационные входы умножителей и первый вход сумматора являются входом-выходом блока, выходом которого является второй выход сумматора, вторые информационные входы умножителей являются вторым информационным входом блока, третьим информационным входом которого является первый информационный вход сумматора, второй, третий и четвертый информационные входы которого подключены к выходам соответственно первого, второго и третьего умножителей, входы которых являются стробирующими входами блока, управляющим входом которого является управляющий вход сумматора.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU94013399A RU2058600C1 (ru) | 1994-04-18 | 1994-04-18 | Специализированный вычислитель для устройств машинной графики |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU94013399A RU2058600C1 (ru) | 1994-04-18 | 1994-04-18 | Специализированный вычислитель для устройств машинной графики |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2058600C1 true RU2058600C1 (ru) | 1996-04-20 |
RU94013399A RU94013399A (ru) | 1996-08-20 |
Family
ID=20154785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU94013399A RU2058600C1 (ru) | 1994-04-18 | 1994-04-18 | Специализированный вычислитель для устройств машинной графики |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2058600C1 (ru) |
-
1994
- 1994-04-18 RU RU94013399A patent/RU2058600C1/ru active
Non-Patent Citations (1)
Title |
---|
Григорьев В. Л. Архитектура и программирование арифметического сопроцессора. М.: Энергоатомиздат, 1991, с.170-173. * |
Also Published As
Publication number | Publication date |
---|---|
RU94013399A (ru) | 1996-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5973705A (en) | Geometry pipeline implemented on a SIMD machine | |
Sproull et al. | A clipping divider | |
US4594673A (en) | Hidden surface processor | |
KR910009101B1 (ko) | 화상합성장치 | |
US5363479A (en) | System and method for rendering bezier splines | |
JP2501580B2 (ja) | 曲線イメ−ジの可視表示発生装置 | |
Ottmann et al. | Numerical stability of geometric algorithms | |
US3639736A (en) | Display windowing by clipping | |
US4924414A (en) | Apparatus and method for obtaining priority numbers for drawing figures forming a display figure | |
Weinberg | Parallel processing image synthesis and anti-aliasing | |
CN111127590B (zh) | 一种二阶贝塞尔曲线绘制方法及装置 | |
US8629867B2 (en) | Performing vector multiplication | |
JPH03127282A (ja) | ディジタル・イメージのランド変換装置および方法 | |
US8681173B2 (en) | Device, system, and method for improving processing efficiency by collectively applying operations | |
JPH0776987B2 (ja) | 図形表示システムにおける図形の変換方法 | |
CN110689597A (zh) | 动画模型显示方法和装置 | |
RU2058600C1 (ru) | Специализированный вычислитель для устройств машинной графики | |
Ma | Runtime volume visualization for parallel CFD | |
US6654777B1 (en) | Single precision inverse square root generator | |
Wittram | Hidden-line algorithm for scenes of high complexity | |
JPS6114514B2 (ru) | ||
JP2538645B2 (ja) | 曲線の折線近似装置 | |
Bae et al. | An 11M-triangles/sec 3D graphics clipping engine for triangle primitives | |
US7061494B1 (en) | Method and apparatus for hardware optimization of graphics pipeline functions | |
RU2054713C1 (ru) | Устройство для кадрирования трехмерных изображений при отображении графической информации |