Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 12.03.2025, 23:18   #1
DonLeno
AnyKey`щик
 
Регистрация: 30.01.2024
Сообщений: 5
Написано одно полезное сообщение
(для 3 участников)
Рендер с большим разрешением

Здравствуйте.
Подскажите пожалуйста, как мне сделать renderworld, но с разрешением экрана больше чем у меня фактически (такое вообще возможно?). То есть у меня ноутбук и разрешение экрана 1366*768, а можно отрендерить 2000*2000?

Уточнение: нужно для захвата большей области сцены для создания освещения. Может есть возможности при работе с камерой, или с каким нибудь буфером?

Последний раз редактировалось DonLeno, 16.03.2025 в 17:41.
(Offline)
 
Ответить с цитированием
Старый 05.08.2025, 22:49   #2
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,037
Написано 2,320 полезных сообщений
(для 5,359 пользователей)
Ответ: Рендер с большим разрешением

В самом Блице нельзя насколько я знаю, будет всё равно ужато до размера монитора.

Можно через панель настроек Nvidia выставить разрешение больше чем поддерживает монитор. Оно буде вписываться в экран, всё станет мелким, но захватываться буфер будет по разрешению окна.
Думаю таким образом можно запустить Блиц. Но надо учитывать что у ванильного ограничения что-то типо 2048x2048.

Не знаю можно ли такое провернуть через панель AMD.
Но возможно есть утилиты которые такое делают на любом железе.


Хотя, если нет необходимости видеть всё на экране. То запустить в оконном режиме (окно больше монитора уедет за границу), в самом Блице захватить буфер и сохранить.
SaveBuffer(FrontBuffer(), "screenshot.bmp")
(Online)
 
Ответить с цитированием
Старый 13.08.2025, 22:29   #3
leshiyru70
Оператор ЭВМ
 
Аватар для leshiyru70
 
Регистрация: 20.01.2019
Адрес: Томск
Сообщений: 30
Написано 2 полезных сообщений
(для 3 пользователей)
Ответ: Рендер с большим разрешением

Привет DonLeno ( и где вы только такие псевдонимы берёте )) ). В чистом блице это некатит, дело в том что он берёт из памяти действительно то что туда помещается. Если быть точным, то да-же возможно захватить в оконном режиме больше определённого окна. Делал нечто подобное ещё на XP. Но не более вашего разрешения экрана. Тебе DonLeno если в чистом блице прийдётся всё-же программно это дло решать.
__________________
(Offline)
 
Ответить с цитированием
Старый 14.08.2025, 15:15   #4
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,373
Написано 2,478 полезных сообщений
(для 6,866 пользователей)
Ответ: Рендер с большим разрешением

Супер давно не открывал блиц, но что-то мне подсказывает, что задуманное возможно сделать через создание второй камеры и специального текстурного буфера, куда будем рендерить в более высоком разрешении, эту текстуру надо наложить на квад, который будет рисоваться основной камерой.
Код, примерно такой:
Graphics3D 800600322

; ---------- Настройка ----------
Local screenW 800
Local screenH 
600
Local scaleFactor 
2
Local highResW 
screenW scaleFactor
Local highResH 
screenH scaleFactor

; ---------- Текстура рендера ----------
Local renderTex CreateTexture(highResWhighResH256)

; ---------- 
Камера сцены ----------
Local sceneCam CreateCamera()
CameraViewport(sceneCam00highResWhighResH)

; ---------- 
Сцена ----------
Local light CreateLight()
Local cube CreateCube()
PositionEntity cube005

; ---------- Квад вручную через CreateMesh ----------
Local screenQuad CreateScreenQuad(renderTex)

; ---------- 
Камера отображения ----------
Local screenCam CreateCamera()
CameraProjMode screenCamортографическая проекция
CameraClsMode screenCam
FalseFalse
PositionEntity screenCam
000
PositionEntity screenQuad
001

; ---------- Основной цикл ----------
While 
Not KeyDown(1)
    
TurnEntity cube010

    
Рендерим сцену в текстуру
    SetBuffer TextureBuffer
(renderTex)
    
RenderWorld(sceneCam)
    
CameraToTex(sceneCamrenderTex)

    ; 
Отображаем quad с текстурой
    SetBuffer BackBuffer
()
    
Cls
    RenderWorld
(screenCam)

    
Flip
Wend
End

; ---------- Функция создания quad’а вручную ----------
Function 
CreateScreenQuad(tex)
    
mesh CreateMesh()
    
surf CreateSurface(mesh)

    ; 
Вершины
    v0 
AddVertex(surf, -1,  1000)
    
v1 AddVertex(surf, -1, -1001)
    
v2 AddVertex(surf,  1, -1011)
    
v3 AddVertex(surf,  1,  1010)

    ; 
Два треугольника
    AddTriangle
(surfv0v1v2)
    
AddTriangle(surfv0v2v3)

    ; 
Наложим текстуру
    EntityTexture
(meshtex)
    
EntityFX(mesh1) ; отключить culling
    ScaleEntity
(meshscreenW 2.0screenH 2.01)
    Return 
mesh
End 
Function 
За работосопсобность не ручаюсь, но смысл способа понять можно. При должном желании это можно допилить. У меня есть сомнения по поводу того, позволяет ли CameraViewport сделать размер рисуемого прямоугольника больше размера окна, делегирую поск ответа на данный вопрос владельцам блица, проверяйте, господа
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com