new config for light update pass count

This commit is contained in:
minjaesong
2023-10-28 23:57:40 +09:00
parent acae5dab8b
commit 33e93b8e10
5 changed files with 15 additions and 0 deletions

View File

@@ -33,6 +33,7 @@
"MENU_OPTIONS_DEBUG_CONSOLE": "Debug Console",
"MENU_OPTIONS_DITHER": "Dithering",
"MENU_OPTIONS_JVM_HEAP_MAX": "Max Heap Memory",
"MENU_OPTIONS_LIGHT_UPDATE_PASSES": "Light Calculation Depth",
"MENU_OPTIONS_NOTIFICATION_DISPLAY_DURATION": "Show notification for",
"MENU_OPTIONS_PARTICLES": "Particles",
"MENU_OPTIONS_PERFORMANCE": "Performance",

View File

@@ -33,6 +33,7 @@
"MENU_OPTIONS_DEBUG_CONSOLE": "디버그 콘솔",
"MENU_OPTIONS_DITHER": "디더링",
"MENU_OPTIONS_JVM_HEAP_MAX": "최대 힙 메모리",
"MENU_OPTIONS_LIGHT_UPDATE_PASSES": "빛 계산 반복 횟수",
"MENU_OPTIONS_NOTIFICATION_DISPLAY_DURATION": "알림 표시 시간",
"MENU_OPTIONS_PARTICLES": "입자 수",
"MENU_OPTIONS_PERFORMANCE": "성능",

View File

@@ -128,6 +128,8 @@ object DefaultConfig {
"bgmvolume" to 1.0,
"sfxvolume" to 1.0,
"lightpasses" to 2,
// settings regarding debugger

View File

@@ -31,6 +31,7 @@ class UIPerformanceControlPanel(remoCon: UIRemoCon?) : UICanvas() {
arrayOf("notificationshowuptime", { Lang["MENU_OPTIONS_NOTIFICATION_DISPLAY_DURATION"] + " (${Lang["CONTEXT_TIME_SECOND_PLURAL"]})" }, "spinnerimul,2,10,1,1000"),
arrayOf("", { Lang["MENU_LABEL_GRAPHICS"] }, "h1"),
arrayOf("atlastexsize", { Lang["MENU_OPTIONS_ATLAS_TEXTURE_SIZE"] }, "spinnersel,1024,2048,4096,8192"),
arrayOf("lightpasses", { Lang["MENU_OPTIONS_LIGHT_UPDATE_PASSES"] }, "spinner,2,8,1"),
arrayOf("", { Lang["MENU_LABEL_JVM_DNT"] }, "h1"),
arrayOf("jvm_xmx", { Lang["MENU_OPTIONS_JVM_HEAP_MAX"] + " (GB)" }, "spinner,2,32,1"),
arrayOf("jvm_extra_cmd", { Lang["MENU_LABEL_EXTRA_JVM_ARGUMENTS"] }, "typein"),

View File

@@ -341,6 +341,16 @@ object LightmapRenderer {
// }
// no rendering trickery will eliminate the need of 2nd pass, even the "decay out"
}
App.getConfigInt("lightpasses").let { passcnt ->
if (passcnt > 2) {
for (pass in 3..passcnt) {
App.measureDebugTime("Renderer.LightRuns$pass") {
r1(lightmap);r2(lightmap);r3(lightmap);r4(lightmap)
}
}
}
}
}
private fun buildLanternAndShadowMap(actorContainer: List<ActorWithBody>) {