![]() |
Volume Rendering на XNA (Texture3D)
Вложений: 1
Привет всем!
У меня сильно наболел вопрос.:wild: Могу ли я конец концов пользоватса класом Texture3D для создания объемной текстуры с моей ничтожной Nvidia 5200 FX? (макс. шейдеры - 2.0) Потому что при создании екземпляра: Код:
public Texture3D ( Вложение 12925 Кто небудь делал Volume Rendering на XNA? Есть хороший пример тут. Но он у меня не работает и оч сложный... Есть примеры создания 3Д Текстур на DirectX, OpenGL где не требуютса шейдеры 3.0. Но мне нужно сделать ето на XNA. Посоветуйте мне как справитса с етой задачей. Пожалуйста! |
Ответ: Volume Rendering на XNA (Texture3D)
Цитата:
Цитата:
а ваще накопил бы 100 баксов и купил повменяемее видюху. |
Ответ: Volume Rendering на XNA (Texture3D)
|
Ответ: Volume Rendering на XNA (Texture3D)
Спасибо за незамедлительный ответ!
Цитата:
Цитата:
Цитата:
Есть еще какие ни-ть предложения. Или мне придетса писать собственный клас 3Д Текстур?:4to: |
Ответ: Volume Rendering на XNA (Texture3D)
Почему SurfaceFormat.Vector4? твоя видеокарта конечно не будет поддерживать
Цитата:
|
Ответ: Volume Rendering на XNA (Texture3D)
Цитата:
|
Ответ: Volume Rendering на XNA (Texture3D)
Вложений: 1
Спасибо!
SurfaceFormat.Color - пошло! Только теперь надо как нибудь переделать метод загрузки .RAW: Код:
private void loadRAWFile8(FileStream file) К стате! Кто небудь пробовал загружать RAW с параметрами у файле DAT? Вот как здесь: Вложение 12926 |
Ответ: Volume Rendering на XNA (Texture3D)
Вложений: 2
Всем Привет!
У меня возник еще один вопрос: Код:
float4x4 World; Но она не работает на моем компютере, так как нет доступных ей апаратных возможностей (шейдеров 3.0). Но програмка работеат и ее результат: Вложение 12959 внутри пусто: Вложение 12961 Что посоветуэте делать??? P.S. На основе примера VolumeRayCasting_101 Помогите пожалуйста!:dontknow: |
Ответ: Volume Rendering на XNA (Texture3D)
Так просто tex3D используй.
|
Ответ: Volume Rendering на XNA (Texture3D)
Заменил:
Код:
value = tex3Dlod(VolumeS, pos).r; Код:
value = tex3D(VolumeS, pos).r; Код:
Ошибка 1 Building content threw TimeoutException: FXC took more than 20 seconds to compile! Код:
technique RayCastSimple Код:
technique RayCastSimple Код:
Ошибка 2 E:\My Work\XNA to Silverlight\VolumeRayCasting_101\VolumeRayCasting\Content\Shaders\RayCasting.fx(133,9): error X3511: unable to unroll loop, loop does not appear to terminate in a timely manner (33 iterations), use the [unroll(n)] attribute to force an exact higher number Или в XNA нету возможности построить 3Д текстуры без шейдеров 3.0??? С нетерпением жду ваших ответов! |
Ответ: Volume Rendering на XNA (Texture3D)
у тебя проблемы с циклом, а не с этой командой, читай внимательнее ошибки. Попробуй явно задать количество итераций.
|
Ответ: Volume Rendering на XNA (Texture3D)
Вложений: 1
Да... Спасибо! Но!
Код:
float4 RayCastSimplePS(VertexShaderOutput input) : COLOR0 Код:
Ошибка 2 E:\My Work\XNA to Silverlight\VolumeRayCasting_101\VolumeRayCasting\Content\Shaders\RayCasting.fx(136,9): error X5426: Shader uses texture addressing operations in a dependency chain that is too complex for the target shader model (ps_2_0) to handle. Вложение 12965 Что с етим делать???:dontknow: |
Ответ: Volume Rendering на XNA (Texture3D)
Попробуй начать не с 10, а еще меньше посмотри на сколько можно для SM2.0,
Получается, что у тебя много операций выборки текстур. И еще, шейдер не генерирует 3d текстуру, а делает из нее выборку. Позаботься, чтобы текстура была задана и не черная. |
Ответ: Volume Rendering на XNA (Texture3D)
Вложений: 1
Да рах ты прав!
Запустилось у меня, но отрисовует только один шар: Вложение 12972 Если: Код:
float4 RayCastSimplePS(VertexShaderOutput input) : COLOR0 Код:
Ошибка 2 E:\My Work\XNA to Silverlight\VolumeRayCasting_101\VolumeRayCasting\Content\Shaders\RayCasting.fx(112,8): error X5608: Compiled shader code uses too many arithmetic instruction slots (70). Max. allowed by the target (ps_2_0) is 64. Как быть? :dontknow: |
Ответ: Volume Rendering на XNA (Texture3D)
ps3.0 либо оптимизация расчетов. У тебя превышен лимит инструкций для пиксельного шейдера 2.0 (у тебя 70 из 64 возможных).
|
Ответ: Volume Rendering на XNA (Texture3D)
Цитата:
А если я напишу сам функцию построения 3Д текстуры без использования tex3D??? Не знаю зделаю ли я ето так же легко как на Блице но принцып 3Д текстуры я понял. Например:
Наверно тогда компилятор не будет возмущатса по поводу превишения лимита инструкций. Как вам моя идея??? :rolleyes: |
Ответ: Volume Rendering на XNA (Texture3D)
Вложений: 2
Сделал я то что думал.
И вот как оно виглядит: Вложение 12993 У клас Volume.cs дописал: PHP код:
PHP код:
Вложение 12994 |
Ответ: Volume Rendering на XNA (Texture3D)
Цитата:
|
Ответ: Volume Rendering на XNA (Texture3D)
Вложений: 2
Ета цветовая фигня была в шейдере:
Код:
float4 PositionPS(VertexShaderOutput input) : COLOR0 Код:
float4 PositionPS(VertexShaderOutput input) : COLOR0 Ну теперь самое сложное. Надо написать новую технику в шейдере, чтоб она привязывала каждий слой текстуры с файла к соотвецтвующему полигону... Есть неплохой пример: How To: Create Custom Texture Effects Етот кусок кода привязывает текстуру к всем граням куба: Код:
// This code would go between a device BeginScene-EndScene block. Вопрос: 1. Как добыть тексуры с файла для каждого полигона? 2. Как привязать каждому полигону отдельную текстуру? |
Ответ: Volume Rendering на XNA (Texture3D)
Помогите мне пожалуйста!
Я не знаю как мне добыть масив Texture2D с RAW файла Етот метод: Код:
private void loadRAWFile16(FileStream file) Код:
mVolume = new Texture3D(Game.GraphicsDevice, mWidth, mHeight, mDepth, 0, TextureUsage.None, SurfaceFormat.Single); Код:
float4x4 World; Как зделать так чтобы даные с файла RAW наполнили массив Texture2D??? Жду ваших предложений!!! :SOS: |
Ответ: Volume Rendering на XNA (Texture3D)
Ну вот я и релизовал часть свого хитрого плана:rolleyes: .
Метод загрузки RAW файла я переделал, чтоб он создавал масив Texture2D. Но есть проблема с параметром шейдера в которий я хочу сливать масив текстур. А точнее говоря я не знаю как переслать массив текстур в шейдер... Код метода: PHP код:
Код:
float4x4 World; Код:
Ошибка 2 E:\My Work\XNA to Silverlight\VolumeRayCasting_101\VolumeRayCasting\Content\Shaders\RayCasting.fx(15,10): error X3000: syntax error: unexpected token '[' Подскажыте мне как поступить? |
Ответ: Volume Rendering на XNA (Texture3D)
нельзя в шейдере использовать массив текстур, ты же создавал 3d текстуру, почему отказался то?
|
Ответ: Volume Rendering на XNA (Texture3D)
Цитата:
Код:
Ошибка 2 E:\My Work\XNA to Silverlight\VolumeRayCasting_101\VolumeRayCasting\Content\Shaders\RayCasting.fx(112,8): error X5608: Compiled shader code uses too many arithmetic instruction slots (70). Max. allowed by the target (ps_2_0) is 64. |
Ответ: Volume Rendering на XNA (Texture3D)
Вложений: 10
Я опять обращаюсь к вам за помощю!
У меня есть 3 масива цветных даных с RAW файла: Код:
private Color[] mTextDataNX; Код:
private Texture2D[] mTexture; Код:
int wd = mTexture[0].Width; mTextDataNX Вложение 13011Вложение 13012Вложение 13013 mTextDataNY Вложение 13014Вложение 13015Вложение 13016 mTextDataNZ Вложение 13017Вложение 13018Вложение 13019 Как мне ети масивы цветных даных переобразовать в 3 большых текстуры? (атласы или как их там...) Я пробовал: Код:
private Texture2D nTexture; (оригинал 4096 х 512) Вложение 13023 Как ето сделать коректно? Помогите пожалуйста! |
Ответ: Volume Rendering на XNA (Texture3D)
Добрый вечер!
У меня возник вопрос связаный с шейдером. Код: Код:
float4x4 WorldViewProj; Код:
float4x4 WorldViewProj; Код:
Ошибка 1 Errors compiling C:\Documents and Settings\Володя\Мои документы\Visual Studio 2008\Projects\Vol_Render\Vol_Render\Content\Shaders\VolumeRendering.fx: Помогите исправить ошибку, пожалуйста! |
Ответ: Volume Rendering на XNA (Texture3D)
ну так if(input.pos.x > 0.5f)
Ты же специально для этого скопировал значение output.pos = input.Position; в вершинном шейдере. POSITION0 не передать в пиксельный шейдер, только через текстурные слоты. |
Часовой пояс GMT +4, время: 19:19. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot