forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Рендер с большим разрешением (http://forum.boolean.name/showthread.php?t=21041)

DonLeno 12.03.2025 23:18

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

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

Arton 05.08.2025 22:49

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

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

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


Хотя, если нет необходимости видеть всё на экране. То запустить в оконном режиме (окно больше монитора уедет за границу), в самом Блице захватить буфер и сохранить.
SaveBuffer(FrontBuffer(), "screenshot.bmp")

leshiyru70 13.08.2025 22:29

Ответ: Рендер с большим разрешением
 
Привет DonLeno ( и где вы только такие псевдонимы берёте )) ). В чистом блице это некатит, дело в том что он берёт из памяти действительно то что туда помещается. Если быть точным, то да-же возможно захватить в оконном режиме больше определённого окна. Делал нечто подобное ещё на XP. Но не более вашего разрешения экрана. Тебе DonLeno если в чистом блице прийдётся всё-же программно это дло решать.

Randomize 14.08.2025 15:15

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

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 сделать размер рисуемого прямоугольника больше размера окна, делегирую поск ответа на данный вопрос владельцам блица, проверяйте, господа

DonLeno 12.09.2025 22:06

Ответ: Рендер с большим разрешением
 
Arton, Randomize!!
Спасибо большое за ваши ответы. Захожу на форум ради поиска и долго ответов не было. Я думал что здесь уже никого))
Попробую протестить ваши идеи.

To Randomize - в функции Renderworld нельзя передавать камеру. Но можно свою функцию обернуть вокруг рендерворлд.

Thx! Теперь буду еще задавать вопросы


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

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