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=16854)

wppt 26.11.2012 17:39

Ответ: Вопросы по XNA.
 
Мне это пока ни о чем не говорит :(
Может есть код у кого?

pax 26.11.2012 17:47

Ответ: Вопросы по XNA.
 
Ну вот первая ссылка в гугле http://www.riemers.net/eng/Tutorials...to_texture.php

wppt 26.11.2012 18:02

Ответ: Вопросы по XNA.
 
а как мне это поможет определить цвет пикселя?

pax 26.11.2012 18:19

Ответ: Вопросы по XNA.
 
сначала http://msdn.microsoft.com/ru-ru/libr...tudio.10).aspx
потом http://msdn.microsoft.com/en-us/libr...getdata .aspx
ну и оттуда цвет

wppt 26.11.2012 18:47

Ответ: Вопросы по XNA.
 
Я не понял - мне нужно сначала создать текстуру, или использовать уже загруженную? В смысле, создавать ее в процессе исполнения программы?

wppt 26.11.2012 18:52

Ответ: Вопросы по XNA.
 
Что-то вообще не врубаюсь :(

Dream 26.11.2012 19:44

Ответ: Вопросы по XNA.
 
ну, рендер в текстуру замедлит приложение, я думал ему нужно какможно быстрее.

wppt 26.11.2012 19:55

Ответ: Вопросы по XNA.
 
Да мне хоть так хоть так - все равно не знаю, как. Что делать если текстура большая, все равно из всего массива выбирать нужный мне цвет? И без гетдаты в LodaContent не обойтись?

А если пиксель, например, выбирается щелчком мыши на нем, то как узнать цвет пикселя, не зная, по пикселю какой текстуры я "попал"?

pax 26.11.2012 20:28

Ответ: Вопросы по XNA.
 
Вот есть пример, может поможет
http://www.cyberforum.ru/windows-for...ead328886.html

только снимать не весь экран, а несколько пикселей.

Dream 26.11.2012 20:31

Ответ: Вопросы по XNA.
 
Ну ты не будешь делать лооад контент для узнавание цвета, ты уже и так загрузишь текстуры чтобы их отрисовывать.

PHP код:

RenderTarget2D texture2D = new RenderTarget2D(GraphicsDevice, (int)ScreenResolution.X, (int)ScreenResolution.YfalseSurfaceFormat.ColorDepthFormat.Depth16); ;

...

GraphicsDevice.SetRenderTarget(texture2D);
GraphicsDevice.Clear(Color.Black);

SpriteBatch.Begin(SpriteSortMode.FrontToBack,
                                            
BlendState.NonPremultiplied,
                                            
SamplerState.LinearClamp,
                                            
DepthStencilState.None,
                                            
RasterizerState.CullCounterClockwisenull);
--
рисуешь что надо
SpriteBatch
.End()

GraphicsDevice.SetRenderTarget(null);
GraphicsDevice.Clear(Color.Black);
SpriteBatch.Begin(SpriteSortMode.FrontToBack,
                                            
BlendState.NonPremultiplied,
                                            
SamplerState.LinearClamp,
                                            
DepthStencilState.None,
                                            
RasterizerState.CullCounterClockwisenull);

SpriteBatch.Draw(_texture2D,Vector2.ZeroColor.White);

SpriteBatch.End() 

ну и полнятно рендер таргет не создавать в цикле.
Вот с этой текстуры и бери нужный пиксель через GetData. выставляешь ректанг в 1 пиксель и всё будет ок

wppt 26.11.2012 22:08

Ответ: Вопросы по XNA.
 
Спасибо, а рендертаргет тоже наверно постоянно в цикле изменять нежелательно?
Что-то это все очень на производительность влияет :(

А где же массив цветов брать? Придется его в лоадконтент задавать?

Вроде бы разобрался!

Может еще вопросы появятся

Dream 27.11.2012 02:39

Ответ: Вопросы по XNA.
 
так и не понял. разобрался или нет?
texture2d.GetData

wppt 27.11.2012 16:58

Ответ: Вопросы по XNA.
 
Разобрался, спасибо, но что делать, если мне (допустим) нужно знать значение цвета пикселя в опр. точке каждый шаг?
Это ж очень снизит производительность!

Dream 27.11.2012 18:09

Ответ: Вопросы по XNA.
 
Рендер сначала в текстуру а потом на экран не так уж сильно садит FPS. и тем более влиянием взятия одного пикселя с текстуры каждый раз можно принебречь.

wppt 27.11.2012 21:05

Ответ: Вопросы по XNA.
 
не знаю, у меня fps до 100 понижается


Почему иногда некоторые переменные принимают значение Infinity?


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

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