forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Обрисовка ребер (http://forum.boolean.name/showthread.php?t=7968)

BlackDragon 12.03.2009 17:00

Обрисовка ребер
 
Вложений: 1
Нужно 3д модель отобразить в примерно таком виде. Причем при изменении расстояния до камеры толщина линий не должна меняться. Кто что посоветует?

Colossus 12.03.2009 17:10

Ответ: Обрисовка ребер
 
хм.. тоесть тебе нужны чисто ребра?! чтобы модель была прозрачной?! или чтобы на затекстуренной модели были очерчены ребра?!

IGR 12.03.2009 17:22

Ответ: Обрисовка ребер
 
шейдеры !!

HolyDel 12.03.2009 17:38

Ответ: Обрисовка ребер
 
Цитата:

Сообщение от IGR (Сообщение 100402)
шейдеры !!

геометрические !!

http://www.gamedev.ru/community/open...les/gs4?page=3

BlackDragon 12.03.2009 18:17

Ответ: Обрисовка ребер
 
Я в плюсах плохо шарю, да и я думаю, что эт лучше на дх, так как не на всех компах есть огл.
Может библиотечка есть какая?

NitE 12.03.2009 18:19

Ответ: Обрисовка ребер
 
а ты думаешь шейдеры это только на с++ и только на опенгл ?
нет.

BlackDragon 12.03.2009 18:29

Ответ: Обрисовка ребер
 
Цитата:

Сообщение от NitE (Сообщение 100411)
а ты думаешь шейдеры это только на с++ и только на опенгл ?
нет.

тут выше ссылка есть, так вот там на срр и огл, я про это и грил

NitE 12.03.2009 18:36

Ответ: Обрисовка ребер
 
http://www.gamedev.ru/articles/?id=10109 c++ directx
http://www.gamedev.ru/articles/?id=10100 assembler directx
http://www.gamedev.ru/articles/?id=20110 cg opengl
ну и т.д. так-что ищи - наверняка нужная статья найдется ))

IGR 12.03.2009 19:28

Ответ: Обрисовка ребер
 
Цитата:

геометрические !!

http://www.gamedev.ru/community/open...les/gs4?page=3
дык только для висты ??
Цитата:

Геометрический шейдер является неотъемлемой частью API DirectX 10 корпорации Microsoft. Данный API доступен только в операционной системе Windows Vista, поэтому все новые возможности G80 (и грядущего R600) можно использовать только в этой ОС.

jimon 12.03.2009 20:53

Ответ: Обрисовка ребер
 
IGR
дык это же directx, в opengl геометрические шейдеры можно использовать и на XP

IGR 12.03.2009 20:56

Ответ: Обрисовка ребер
 
ага, разобрался... пасибо !!

HolyDel 12.03.2009 20:59

Ответ: Обрисовка ребер
 
Цитата:

дык это же directx, в opengl геометрические шейдеры можно использовать и на XP
jimon! забыл linux и маки.

IGR 12.03.2009 21:12

Ответ: Обрисовка ребер
 
маки у нас вообще экзотика !! :)

ABTOMAT 12.03.2009 22:09

Ответ: Обрисовка ребер
 
Вложений: 1
Можно извратиться и сделать второй, более большой чёрный меш поверх первого и вывернуть ему нормали. Получиццо как на скрине. Это Cell Shade, его так делали до того как появились шейдеры и прочая хрень, позволяющая делать не через жопу.

В аттаче пример (Макс 7)
Не идеально, но суть понять можно я думаю.
То же самое можно и программно накрайняк реализовать.

jimon 12.03.2009 22:17

Ответ: Обрисовка ребер
 
ABTOMAT
я тоже так думал, можно даже не cell shade, а просто белую текстурку с одной черной полоской наложить правильно, НО - автору нужно чтобы ширина линии была одинаковой при любом растоянии

ABTOMAT 12.03.2009 22:40

Ответ: Обрисовка ребер
 
Ать, точно :( Тогда либо программно делать масштабирование CellShade'а (гемор), либо шейдерами (которых в блице нет).
В принципе текстура dds с мипами с полосами по углам. Чем меньше мип тем толщина больше в %.
Короче шейдеры - единственный не через жопный метод.

HolyDel 12.03.2009 22:48

Ответ: Обрисовка ребер
 
нет. не единственный.
если как то получить нужные вершины и их проекцию на камеру - то можно нарисовать и обычными 2д линиями.
Сколько фпс ето будет жрать - это уже другой вопрос.

jimon 12.03.2009 23:19

Ответ: Обрисовка ребер
 
HolyDel
их можно построить и самому, но не понятно как отсекать тогда невидимые грани

Mr_F_ 12.03.2009 23:23

Ответ: Обрисовка ребер
 
можно ещё отключить clsmode и рисовать сначала белые меши а потом черный вайрфрейм и они друг на друга наложатся.
правда линии будут тонкие и объекты друг через друга видны))

moka 13.03.2009 01:28

Ответ: Обрисовка ребер
 
А можно на цпу посчитать DepthMap, или нормали вывести (кубмапа), и далее по пикселям пройтись, не реалтайм ест-но!
А так шейдера полюбому, но реализовать не геометрическим шейдером а пост обработкой тоже гемор, алгоритм жручий, т.к. на каждый пиксель будет пробегаться по ближним, в радиусе, толщины линии, плюс ещё проверять как нормали и дептх несовпадают, и по этому уже делать. Кушать такая кака будет не меньше добротного блуринга полноэкранной картинки - что естно никто не делает (уменьшенную блурить выгоднее).

HolyDel 13.03.2009 01:30

Ответ: Обрисовка ребер
 
MoKa, постобработкой пикслелей не пойдет. автору нужна фиксированая ширина линий.

moka 13.03.2009 01:43

Ответ: Обрисовка ребер
 
HolyDel, дык фиксированная толщина и будет. Это если ему нужна фиксированная толщина в зависимости от расстояния, да и тут просто, тоже пойдёт, только меняй длину шага для цикла ;)

ABTOMAT 13.03.2009 02:46

Ответ: Обрисовка ребер
 
Я думаю ЦПУшная обработка пикселей тут не к месту ибо ЛаГГ

moka 13.03.2009 02:50

Ответ: Обрисовка ребер
 
ABTOMAT, если главная идея не обработка изображения, а реализация такой обводки в RealTime, как я уже заметил ранее в своём посте.


Часовой пояс GMT +4, время: 21:26.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot