forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Вопросы по Xna (http://forum.boolean.name/showthread.php?t=13864)

den 09.12.2010 21:26

Вопросы по Xna
 
Вот накопилось несколько вопросов:
1) В шейдерах переменные цвета хранятся в float4. Как из кода передать в шейдер такую переменную (параметр), ведь в C# нет типа float4?
2) Как сделать шейдер во весь экран. Тоесть чтоб эффект был на всём экране? Тоесть чтоб вершинами были 4 угла экрана игры.
3) Как нарисовать круг? если циклом for и формулой то это я знаю:)
4) Есть ли какойнибуть плагин, чтоб при редактировании шейдера была хоть какаято подсветка? А лучше чтоб какиенибуть фичи. Типо первые буквы набираеш, а он слова всякие выдаёт подходящие (как в самом C#)

pax 09.12.2010 22:12

Ответ: Вопросы по Xna
 
Вложений: 1
1) Vector4, Color?
2) Единичный квад без приведения к экранному пространству в шейдере.
3) а как ты еще хочешь? Отрендери диск, смоделенный в максе.
4) NShader, InteliShade (на xnadev.ru был в разделе файлы)

den 09.12.2010 22:35

Ответ: Вопросы по Xna
 
Спасибо!
Ещё вопросик, точнее 2:
1) Создал простой шейдер. Внутри техники шейдера, в файле .cs с помощью метода GraphicsDevice.DrawUserPrimitives рисую примитив. Как сделать его сглаженым, тоесть чтобы не было "лесинки"?
2) Как задать ширину линии? Толщину точки нашол, а линии нет:)

pax 09.12.2010 22:36

Ответ: Вопросы по Xna
 
Не помню чтобы в Wareframe можно было менять толщину линий. А по поводу лесенки: включай FSAA.

pax 09.12.2010 22:39

Ответ: Вопросы по Xna
 
По шейдерам для XNA есть неплохой тутор
http://rutracker.org/forum/viewtopic.php?t=927912

den 12.12.2010 23:36

Ответ: Вопросы по Xna
 
Вопрос не по Xna, да и не по C#.
Как изменить язык программирования по умолчанию в VS 2008?:)
Тоесть когда создаёш проект, окно выбора такое:
+[Язык по умолчанию]
+[Другие языки]

pax 13.12.2010 00:33

Ответ: Вопросы по Xna
 
Думаю разберешься где жать далее )

den 13.12.2010 21:39

Ответ: Вопросы по Xna
 
Так, ещё вопрос:
со всеми вопросами пока разобрался кроме одного:
Цитата:

2) Как сделать шейдер во весь экран. Тоесть чтоб эффект был на всём экране? Тоесть чтоб вершинами были 4 угла экрана игры.
Вобщем pax дал какойто нёх код, но я не опйму как им пользоватся.:(
Вод допустим шейдер инверсии.


PHP код:

void VS(
        
in float4 inPos  POSITION
        
in float4 inColor COLOR0,
 
        
out float4 outPos POSITION,
        
out float4 outColor COLOR0 )
{
        
outPos inPos;
 
        
inColor.rgb inColor.rgb;
        
outColor inColor;
}
 
 
technique Technique0
{
        
pass P0
        
{
                
vertexShader compile vs_2_0 VS();
        }




как сделать чтоб он работал на весь экран ? Куда его засунуть?:)

pax 13.12.2010 22:19

Ответ: Вопросы по Xna
 
Порядок такой:
  • Cоздать экземпляр класса FullScreenQuad который я дал.
  • Установить эффект (шейдер) текущим.
  • Установить P0 текущим пассом.
  • У экземпляра класса FullScreenQuad вызывать Draw.
  • Закрыть пасс.
  • Закрыть эффект.

Только проблема в том, что шейдер твой инвертирует цвет рисуемого квада (т.е. цвет его вершин). И результат наверно будет черный экран.
Чтобы тебе сделать постобработку, тебе надо в шейдер передать текстуру и инвертировать ее цвет в пиксельном шейдере и уш точно не в вершинном. Т.е. сцену надо рендерить в текстуру. А потом ее использовать.

Досмотри уроки, там есть постобработка в виде подсветки лампочек на модели.


В итоге должно получиться что-то вроде:
  • Ставим текстуру целью визуализации
  • Рендерим сцену в текстуру
  • Ставим целью визуализации экран
  • Cоздать экземпляр класса FullScreenQuad который я дал (можно где-то один раз как SpriteBatch).
  • Установить эффекту текстуру сцены.
  • Установить эффект (шейдер) текущим.
  • Установить P0 текущим пассом.
  • У экземпляра класса FullScreenQuad вызывать Draw.
  • Закрыть пасс.
  • Закрыть эффект.

den 01.01.2011 14:35

Ответ: Вопросы по Xna
 
Разобрался:)
Вобщем я написал 2 класса: полноэкранный эфект, и FSAA. Очень просто в обращении. Если комуто надо нопишете, выложу:)
А теперь следующий вопрос: как записать звук с микрофона (необязательно в файл, можно просто в память) и работать с ним (воспроизвести, выдрать кусок, обратить) Вобщем я даже низнаю если такое в Xna или .Net фраемворке. Если нет, то есть ли библиотека?

pax 01.01.2011 15:19

Ответ: Вопросы по Xna
 
Я честно тоже не знаю.
Возможно поможет http://gamedev.stackexchange.com/que...nd-data-in-xna

den 01.01.2011 18:51

Ответ: Вопросы по Xna
 
Всё, проблема решена. Нашол подходящую библиотеку.
NAudio
Качаем от суда.
там сама библа, исходник, а также 4 примера.
А вот здесь годный урок.

cherepets 25.10.2011 12:21

Ответ: Вопросы по Xna
 
Здравствуйте, тоже хочу по XNA задать вопрос.
Подключил .Input.Touch, сделал всё что студия потребовала (перечислил необходимые мне жесты, а пока это только Pinch, сделал проверку на TouchPanel.IsGestureAvailable).
Но TouchPanel.IsGestureAvailable всегда false.

Какие могут быть идеи?

pax 25.10.2011 12:52

Ответ: Вопросы по Xna
 
Не уверен, что у кого-то есть WP чтобы такое проверить...

cherepets 25.10.2011 12:56

Ответ: Вопросы по Xna
 
Это не WP, мне на настолке нужно.


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

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