Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Возможно ли сделать Wireframe режим в Stage3D (http://www.flasher.ru/forum/showthread.php?t=172669)

deamoK 14.12.2011 23:13

Возможно ли сделать Wireframe режим в Stage3D
 
Вряд ли кто-то знает, но попытка не пытка...
Облазил гугл, ничего подходящего не нашел.
Пока вижу, что пиксельный шейдер требует либо просто цвет вершин (mov oc, v0) либо текстуру (tex ft0, v1, fs0 <2d, repeat, miplinear>), а как сделать, что просто каркас рисовался?.. Оо Вообще без понятия, куда копать, может шейдер какой-нить нужен...

Alex Lexcuk 14.12.2011 23:48

Я ещё не смотрел на Stage3D, однако по логике каркас нарисуется если в текстуре нарисовать один треугольник, и передавать UW координаты текстуры этого треугольника для всех подряд граней.

deamoK 15.12.2011 01:32

Впринципе сделал, но токо в текстурку эту облачился токо 1 полигон, а на сцене квадратик из двух. (еще с uv запутался)
Закатал в пейнте треугольник красный на черном фоне, сделал blendmode SOURCE_COLOR, ONE, чтоб черный стал прозрачным, но красные полосы (в таком режиме смешивания) не видны на белом фоне сцены... Но ето все не суть тк, такой подход для танкистов. Надо норм каркасный режим, без текстур, а мы ресуем каркас на текстуре и накладываем на модельки... разрыв шаблона

alatar 15.12.2011 12:51

Что в вашем понимании "норм каркасный режим"? Можете получить все вершины модели и отрисовать между ними линии. Будет вам без текстур.

deamoK 15.12.2011 17:14

Я имел ввиду чтоб видеокарта рисовала линии, а не как раньше graphics.drawTriangles

alatar 15.12.2011 19:37

Stage3D не использует graphics.drawTriangles. Видеокарта не умеет "рисовать линии". Возможно будет достаточно написать шейдер, без использования текстур.

-De- 15.12.2011 19:46

Видеокарта умеет. В directx/opengl есть можно рисовать wireframe вместо треугольников. Сделано ли оно на флэш - не знаю, доки за кого-то читать лень)

deamoK 15.12.2011 23:28

Цитата:

Сообщение от alatar (Сообщение 1051731)
Stage3D не использует graphics.drawTriangles.

Не понял к чему это... Я как бы знаю, что не использует, я ж написал "как раньше"... Раньше я так делал, тк не было stage3D api.

В книге "Adobe Flash 11 Stage3D (Molehill) Game Programming.
Beginner's Guide" Christer Kaitila есть строчка:
In order to draw a mesh (unless you simply want to render a wireframe), you will use one or
more images, which are called textures, to color the shape. Больше, к сожалению, ни слова((


В доках нет нифига, искал, вроде бы, хорошо, гугль молчит...

-De- 16.12.2011 00:11

В доках по классам из display3D правда нет ничего похожего. Не понятно даже как просто линию/точку нарисовать без треугольников. В opengl/directx это указывается в функциях, самый близкий аналог которых - Context3D#drawTriangles() (glDrawElements / DrawPrimitive). Так что если не нечто недокументированное - то нет =\

deamoK 16.12.2011 00:34

Да, походу можно только прото цвет закатывать в fragment shader или текстурку =\

Alex Lexcuk 16.12.2011 02:28

Wireframe molehil
http://www.kirupa.com/forum/showthre...thread./page17
http://www.kirupa.com/forum/showthre...thread./page12

deamoK 16.12.2011 19:37

Спасибо, конечно, Alex, что нашли хоть что-то по теме, но разобраться в етих кусках кода и мыслей форумчан-задротов... не просто. Чтобы разобраться нужен рабочий код с пояснениями =\
(сам агал знаю, что такое op, oc, v0, ft0 vt0 и прочее - тоже, а вот алгоритм понять оттуда нереально)
Кстати, ни одна 3D демка с форума не работает, проверил адобовскую феррари - работает, странно.
Пропробую, что-ли, затение (lambert shading) пока покопаю.

В шапку можно было б добавить pdf книгу эту - Adobe Flash 11 Stage3D (Molehill) Game Programming, все классно и понятно описано.
---
Опять застрял, и в освещении, и в затенении, и нормалмаппинге, нужны нормали.
Во всех примерах все уже есть, ну как всегда... А если нет нормалей, есть только координаты, индексы и UV. Надо еще и самому нормали колупать

Alex Lexcuk 17.12.2011 17:40

А я немного разобрался с wire режимом (можно разными способами этого добиться)
Шейдерами из темы http://www.kirupa.com/forum/showthre...olehill-thread
дема шейдерами http://murmadillo.tut.su/m/wire-main.html
Или текстурой из двух треугольников, из этой темы http://www.demiart.ru/forum/index.php?showtopic=190133
дема текстурой http://murmadillo.tut.su/m/wire-Stage3dGame.html

архив
http://murmadillo.tut.su/m/wire.zip


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.