• R/O
  • SSH

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisionb93168b39560f10fbc792d0ad2478731da17c48f (tree)
Zeit2020-01-14 06:56:59
Autorsebastian_bugiu <sebastian_ <bugiu@head...>
Commitersebastian_bugiu <sebastian_

Log Message

Pbs workflow now taken into account when creating item. 3rd person view for player ship now adapted for larger ship. Further adaptation might be needed. Updated ambient light source in level patrol.

Ändern Zusammenfassung

Diff

diff -r bb37a1489dc1 -r b93168b39560 android/src/main/jni/blackholedarksunmain.cpp
--- a/android/src/main/jni/blackholedarksunmain.cpp Wed Jan 08 22:00:23 2020 +0200
+++ b/android/src/main/jni/blackholedarksunmain.cpp Mon Jan 13 23:56:59 2020 +0200
@@ -1365,6 +1365,7 @@
13651365 case SCENEMANAGER_ITEM_CREATE:
13661366 {
13671367 BufferRead<long long> bufferReadLong;
1368+ BufferRead<char> bufferReadChar;
13681369 alignPointer(&buf, 4);
13691370 long long int sceneManagerPtr = bufferReadLong.read(&buf);
13701371 Ogre::SceneManager *sceneManager = (Ogre::SceneManager*) getLongAsPointer(sceneManagerPtr);
@@ -1372,6 +1373,7 @@
13721373 bool ptrJustCreated = isPointerJustCreated(ptrFlag);
13731374 long long int itemPtr = bufferReadLong.read(&buf);
13741375 const Ogre::String &meshName = readString(&buf);
1376+ char workflow = bufferReadChar.read(&buf);
13751377 Ogre::Item *item = sceneManager->createItem(meshName);
13761378 addToItemList(item, MovableObjectType::ITEM);
13771379 Ogre::String name(std::string("create_item ") + meshName);
@@ -1383,12 +1385,14 @@
13831385 for (size_t i = 0; i < itemsCount; ++i)
13841386 {
13851387 Ogre::SubItem *pSubItem = item->getSubItem(i);
1386- Ogre::HlmsPbsDatablock *datablock = (Ogre::HlmsPbsDatablock*) pSubItem->getDatablock();
1387- datablock->setWorkflow(Ogre::HlmsPbsDatablock::Workflows::MetallicWorkflow);
1388+ if (workflow != (char) Ogre::HlmsPbsDatablock::Workflows::SpecularWorkflow)
1389+ {
1390+ Ogre::HlmsPbsDatablock *datablock = (Ogre::HlmsPbsDatablock*) pSubItem->getDatablock();
1391+ datablock->setWorkflow((Ogre::HlmsPbsDatablock::Workflows) workflow);
1392+ }
13881393 write(&wbuf, getPointerAsLong(pSubItem));
13891394 }
13901395
1391-
13921396 }
13931397 break;
13941398 case SCENEMANAGER_ITEM_CREATE_ALL_PARAMS:
@@ -1404,6 +1408,7 @@
14041408 const Ogre::String &meshName = readString(&buf);
14051409 const Ogre::String &groupName = readString(&buf);
14061410 char sceneMemoryMgrTypeChar = bufferReadChar.read(&buf);
1411+ char workflow = bufferReadChar.read(&buf);
14071412 Ogre::Item *item = sceneManager->createItem(meshName, groupName,
14081413 sceneMemoryMgrTypeChar == 0 ? ::Ogre::SCENE_DYNAMIC : ::Ogre::SCENE_STATIC);
14091414 addToItemList(item, MovableObjectType::ITEM);
@@ -1416,8 +1421,11 @@
14161421 for (size_t i = 0; i < itemsCount; ++i)
14171422 {
14181423 Ogre::SubItem *pSubItem = item->getSubItem(i);
1419- Ogre::HlmsPbsDatablock *datablock = (Ogre::HlmsPbsDatablock*) pSubItem->getDatablock();
1420- datablock->setWorkflow(Ogre::HlmsPbsDatablock::Workflows::MetallicWorkflow);
1424+ if (workflow != (char) Ogre::HlmsPbsDatablock::Workflows::SpecularWorkflow)
1425+ {
1426+ Ogre::HlmsPbsDatablock *datablock = (Ogre::HlmsPbsDatablock*) pSubItem->getDatablock();
1427+ datablock->setWorkflow((Ogre::HlmsPbsDatablock::Workflows) workflow);
1428+ }
14211429 write(&wbuf, getPointerAsLong(pSubItem));
14221430 }
14231431 }
diff -r bb37a1489dc1 -r b93168b39560 core/src/headwayEnt/HotshotEngine/Renderer/ENG_Workflows.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/core/src/headwayEnt/HotshotEngine/Renderer/ENG_Workflows.java Mon Jan 13 23:56:59 2020 +0200
@@ -0,0 +1,25 @@
1+package headwayent.hotshotengine.renderer;
2+
3+public enum ENG_Workflows {
4+ /// Specular workflow. Many popular PBRs use SpecularAsFresnelWorkflow
5+ /// though. @see setWorkflow
6+ SpecularWorkflow(0),
7+
8+ /// Specular workflow where the specular texture is addressed to the fresnel
9+ /// instead of kS. This is normally referred as simply Specular workflow
10+ /// in many other PBRs. @see setWorkflow
11+ SpecularAsFresnelWorkflow(1),
12+
13+ //// Metallic workflow. @see setWorkflow
14+ MetallicWorkflow(2);
15+
16+ private byte workflow;
17+
18+ private ENG_Workflows(int i) {
19+ workflow = (byte) i;
20+ }
21+
22+ public byte getWorkflow() {
23+ return workflow;
24+ }
25+}
diff -r bb37a1489dc1 -r b93168b39560 core/src/headwayEnt/HotshotEngine/Renderer/nativeinterface/pipeline/ENG_NativeCalls.java
--- a/core/src/headwayEnt/HotshotEngine/Renderer/nativeinterface/pipeline/ENG_NativeCalls.java Wed Jan 08 22:00:23 2020 +0200
+++ b/core/src/headwayEnt/HotshotEngine/Renderer/nativeinterface/pipeline/ENG_NativeCalls.java Mon Jan 13 23:56:59 2020 +0200
@@ -62,6 +62,7 @@
6262 import headwayent.hotshotengine.renderer.ENG_TextAreaOverlayElement;
6363 import headwayent.hotshotengine.renderer.ENG_TextureNative;
6464 import headwayent.hotshotengine.renderer.ENG_TiledAnimationNative;
65+import headwayent.hotshotengine.renderer.ENG_Workflows;
6566 import headwayent.hotshotengine.renderer.nativeinterface.classwrappers.ENG_NativePointer;
6667 import headwayent.hotshotengine.renderer.nativeinterface.classwrappers.ENG_NativePointerWithSetter;
6768
@@ -1159,12 +1160,17 @@
11591160 }
11601161
11611162 public static void sceneManager_createItem(final ENG_Item item, String meshName, final int subItemCount) {
1163+ sceneManager_createItem(item, meshName, subItemCount, ENG_Workflows.SpecularWorkflow);
1164+ }
1165+
1166+ public static void sceneManager_createItem(final ENG_Item item, String meshName, final int subItemCount, ENG_Workflows workflow) {
11621167 ENG_RenderingThread.writeByte(NativeCallsList.SCENEMANAGER_ITEM_CREATE.getCallPos());
11631168 ENG_SceneManager sceneManager = ENG_RenderRoot.getRenderRoot().getSceneManager();
11641169 ENG_RenderingThread.writeLong(sceneManager.getPointer());
11651170 item.setPointer(ENG_Utility.getUniqueId());
11661171 setPtr(item, true);
11671172 writeString(meshName);
1173+ ENG_RenderingThread.writeByte(workflow.getWorkflow());
11681174 ENG_RenderingThread.addFrameEndListener(new ENG_RenderedFrameListenerWithBufferCopyWithLock(
11691175 ENG_Long.SIZE_IN_BYTES * (subItemCount + 1), true) {
11701176 @Override
@@ -1176,7 +1182,12 @@
11761182
11771183 public static void sceneManager_createItem(final ENG_Item item, String meshName, String groupName,
11781184 ENG_Common.SceneMemoryMgrTypes type, final int subItemCount) {
1179- ENG_RenderingThread.writeByte(NativeCallsList.SCENEMANAGER_ITEM_CREATE.getCallPos());
1185+ sceneManager_createItem(item, meshName, groupName, type, subItemCount, ENG_Workflows.SpecularWorkflow);
1186+ }
1187+
1188+ public static void sceneManager_createItem(final ENG_Item item, String meshName, String groupName,
1189+ ENG_Common.SceneMemoryMgrTypes type, final int subItemCount, ENG_Workflows workflow) {
1190+ ENG_RenderingThread.writeByte(NativeCallsList.SCENEMANAGER_ITEM_CREATE_ALL_PARAMS.getCallPos());
11801191 ENG_SceneManager sceneManager = ENG_RenderRoot.getRenderRoot().getSceneManager();
11811192 ENG_RenderingThread.writeLong(sceneManager.getPointer());
11821193 item.setPointer(ENG_Utility.getUniqueId());
@@ -1184,6 +1195,7 @@
11841195 writeString(meshName);
11851196 writeString(groupName);
11861197 ENG_RenderingThread.writeByte(type.getPos());
1198+ ENG_RenderingThread.writeByte(workflow.getWorkflow());
11871199 ENG_RenderingThread.addFrameEndListener(new ENG_RenderedFrameListenerWithBufferCopyWithLock(
11881200 ENG_Long.SIZE_IN_BYTES * (subItemCount + 1), true) {
11891201 @Override
diff -r bb37a1489dc1 -r b93168b39560 core/src/headwayEnt/blackholedarksun/physics/PlayerShipMotionState.java
--- a/core/src/headwayEnt/blackholedarksun/physics/PlayerShipMotionState.java Wed Jan 08 22:00:23 2020 +0200
+++ b/core/src/headwayEnt/blackholedarksun/physics/PlayerShipMotionState.java Mon Jan 13 23:56:59 2020 +0200
@@ -26,7 +26,7 @@
2626
2727 private CameraProperties cameraProperties;
2828 private final ENG_Quaternion tempOrientation = new ENG_Quaternion(true);
29- private final ENG_Vector4D cameraDelta = new ENG_Vector4D(0.0f, 30.0f, 150.0f, 1.0f);
29+ private final ENG_Vector4D cameraDelta = new ENG_Vector4D(0.0f, 50.0f, 200.0f, 1.0f);
3030 private final ENG_Vector4D finalCameraPos = new ENG_Vector4D();
3131 private final ENG_Vector4D tempCameraPos = new ENG_Vector4D();
3232 private final LinkedList<ENG_Vector4D> finalCameraPositions = new LinkedList<>();
diff -r bb37a1489dc1 -r b93168b39560 desktop/raw/hotshot_gamedata/level_patrol.txt
--- a/desktop/raw/hotshot_gamedata/level_patrol.txt Wed Jan 08 22:00:23 2020 +0200
+++ b/desktop/raw/hotshot_gamedata/level_patrol.txt Mon Jan 13 23:56:59 2020 +0200
@@ -5,10 +5,10 @@
55 skybox SkyboxWorkspace0
66 light_dir -1.0 0.0 0.0
77 light_type directional
8- light_power_scale 1.0
9- light_diffuse_color 1.0 1.0 1.0 1.0
8+ light_power_scale 3.14
9+ light_diffuse_color 0.8 0.4 0.2 1.0
1010 light_specular_color 0.8 0.4 0.2 1.0
11- ambient_light_upperhemi_lowerhemi_dir 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -1.0 0.0 0.0
11+ ambient_light_upperhemi_lowerhemi_dir 0.3 0.5 0.7 0.1 0.6 0.45 0.3 0.1 -1.0 0.0 0.0
1212 // play_cutscene sl_level_patrol_begin
1313 // use_skybox_data_from_level 1
1414 player_ship_selection