textures
This commit is contained in:
parent
a475f48922
commit
ac7077596e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,50 +1 @@
|
|||||||
Camera.cpp
|
grk-cw2.vcxproj -> G:\studia\grafika komputerowa\ggit\Debug\grk-cw2.exe
|
||||||
main_2_1a.cpp
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\main_2_1a.cpp(111,23): warning C4305: 'initializing': truncation from 'double' to 'float'
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\main_2_1a.cpp(168,23): warning C4018: '<': signed/unsigned mismatch
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\main_2_1a.cpp(250,22): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\main_2_1a.cpp(251,22): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\main_2_1a.cpp(514,69): warning C4305: 'argument': truncation from 'double' to 'float'
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\main_2_1a.cpp(631,15): warning C4244: 'argument': conversion from 'time_t' to 'unsigned int', possible loss of data
|
|
||||||
ParticleEmitter.cpp
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\ParticleEmitter.cpp(9,20): warning C4018: '<': signed/unsigned mismatch
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\ParticleEmitter.cpp(49,20): warning C4018: '<': signed/unsigned mismatch
|
|
||||||
Render_Utils.cpp
|
|
||||||
Shader_Loader.cpp
|
|
||||||
Physics.cpp
|
|
||||||
Texture.cpp
|
|
||||||
Generating Code...
|
|
||||||
image_DXT.c
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\image_DXT.c(92,9): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
image_helper.c
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\image_helper.c(325,22): warning C4244: 'initializing': conversion from 'double' to 'float', possible loss of data
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\image_helper.c(366,13): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\image_helper.c(373,20): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\image_helper.c(415,13): warning C4244: '=': conversion from 'double' to 'float', possible loss of data
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\image_helper.c(422,20): warning C4244: '=': conversion from 'float' to 'int', possible loss of data
|
|
||||||
SOIL.c
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\SOIL.c(1719,36): warning C4018: '<=': signed/unsigned mismatch
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\SOIL.c(1729,19): warning C4018: '<': signed/unsigned mismatch
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\SOIL.c(1841,6): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
stb_image_aug.c
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(177,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(251,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(303,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(1557,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(2394,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(2709,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(2995,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(3209,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(3548,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stb_image_aug.c(3644,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stbi_DDS_aug_c.h(362,19): warning C4018: '>': signed/unsigned mismatch
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stbi_DDS_aug_c.h(366,19): warning C4018: '>': signed/unsigned mismatch
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stbi_DDS_aug_c.h(390,19): warning C4018: '<': signed/unsigned mismatch
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stbi_DDS_aug_c.h(427,19): warning C4018: '<': signed/unsigned mismatch
|
|
||||||
G:\studia\grafika komputerowa\ggit\cw 2\src\SOIL\stbi_DDS_aug_c.h(498,14): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
|
||||||
Generating Code...
|
|
||||||
Camera.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
|
|
||||||
PhysXExtensions_static_32.lib(ExtCpuWorkerThread.obj) : warning LNK4099: PDB 'PhysXExtensions_static_32.pdb' was not found with 'PhysXExtensions_static_32.lib(ExtCpuWorkerThread.obj)' or at 'G:\studia\grafika komputerowa\ggit\Debug\PhysXExtensions_static_32.pdb'; linking object as if no debug info
|
|
||||||
PhysXExtensions_static_32.lib(ExtDefaultCpuDispatcher.obj) : warning LNK4099: PDB 'PhysXExtensions_static_32.pdb' was not found with 'PhysXExtensions_static_32.lib(ExtDefaultCpuDispatcher.obj)' or at 'G:\studia\grafika komputerowa\ggit\Debug\PhysXExtensions_static_32.pdb'; linking object as if no debug info
|
|
||||||
PhysXExtensions_static_32.lib(ExtDefaultErrorCallback.obj) : warning LNK4099: PDB 'PhysXExtensions_static_32.pdb' was not found with 'PhysXExtensions_static_32.lib(ExtDefaultErrorCallback.obj)' or at 'G:\studia\grafika komputerowa\ggit\Debug\PhysXExtensions_static_32.pdb'; linking object as if no debug info
|
|
||||||
grk-cw2.vcxproj -> G:\studia\grafika komputerowa\ggit\Debug\grk-cw2.exe
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
48040
cw 2/models/fish1.obj
Normal file
48040
cw 2/models/fish1.obj
Normal file
File diff suppressed because it is too large
Load Diff
8054
cw 2/models/fish2.obj
Normal file
8054
cw 2/models/fish2.obj
Normal file
File diff suppressed because it is too large
Load Diff
12299
cw 2/models/plant1.obj
Normal file
12299
cw 2/models/plant1.obj
Normal file
File diff suppressed because it is too large
Load Diff
44181
cw 2/models/whale.obj
Normal file
44181
cw 2/models/whale.obj
Normal file
File diff suppressed because it is too large
Load Diff
@ -28,7 +28,5 @@ float logisticDepth(float depth)
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
float depth = logisticDepth(gl_FragCoord.z);
|
float depth = logisticDepth(gl_FragCoord.z);
|
||||||
FragColor = texture(skybox, TexCoords) * (1.0f - depth) + vec4(depth * vec3(5.0f/255.0f, 70.0f/255.0f, 80.0f/255.0f), 1.0f);
|
FragColor = texture(skybox, TexCoords) * (1.0f - depth) + vec4(depth * vec3(27.0f/255.0f, 104.0f/255.0f, 149.0f/255.0f), 1.0f);
|
||||||
//FragColor = texture(skybox, TexCoords) * (1.0f - depth) + vec4(depth * vec3(102.0f/255.0f, 172.0f/255.0f, 233.0f/255.0f), 1.0f);
|
|
||||||
//FragColor = texture(skybox, TexCoords);
|
|
||||||
}
|
}
|
@ -21,6 +21,7 @@
|
|||||||
#define SCREEN_X 1280
|
#define SCREEN_X 1280
|
||||||
#define SCREEN_Y 720
|
#define SCREEN_Y 720
|
||||||
#define SEAWEED_NUM 200
|
#define SEAWEED_NUM 200
|
||||||
|
#define PLANT1_NUM 100
|
||||||
#define FISH_NUM 100
|
#define FISH_NUM 100
|
||||||
#define PARTICLE_NUM 300
|
#define PARTICLE_NUM 300
|
||||||
#define GROUND_XY 168
|
#define GROUND_XY 168
|
||||||
@ -31,6 +32,7 @@ GLuint programColor;
|
|||||||
GLuint programTexture;
|
GLuint programTexture;
|
||||||
GLuint programSkyBox;
|
GLuint programSkyBox;
|
||||||
|
|
||||||
|
|
||||||
auto radians = 0.01f;
|
auto radians = 0.01f;
|
||||||
|
|
||||||
struct fish
|
struct fish
|
||||||
@ -95,11 +97,11 @@ float cubeMapVertices[] = {
|
|||||||
SIZE, -SIZE, SIZE
|
SIZE, -SIZE, SIZE
|
||||||
};
|
};
|
||||||
// Modele
|
// Modele
|
||||||
obj::Model groundModel, boxModel, sphereModel, seaweedModel, fishModel, submarineModel, particleModel, geyserModel;
|
obj::Model groundModel, boxModel, sphereModel, seaweedModel, fishModel1, submarineModel, particleModel, geyserModel, fishModel2, plantModel1;
|
||||||
// Contexty
|
// Contexty
|
||||||
Core::RenderContext groundContext, boxContext, sphereContext, seaweedContext, fishContext, submarineContext, particleContext, geyserContext;
|
Core::RenderContext groundContext, boxContext, sphereContext, seaweedContext, fishContext1, submarineContext, particleContext, geyserContext, fishContext2, plantContext1;
|
||||||
// Tekstury
|
// Tekstury
|
||||||
GLuint boxTexture, groundTexture, seaweedTexture, cubeMapTexture, submarineTexture, particleTexture, geyserTexture;
|
GLuint boxTexture, groundTexture, seaweedTexture, cubeMapTexture, submarineTexture, particleTexture, geyserTexture, fishTexture1, fishTexture2, plantTexture1;
|
||||||
// Kamera
|
// Kamera
|
||||||
float cameraAngle = 0;
|
float cameraAngle = 0;
|
||||||
float y_rotation_angle;
|
float y_rotation_angle;
|
||||||
@ -120,7 +122,7 @@ glm::mat4 cameraMatrix, perspectiveMatrix;
|
|||||||
glm::mat4 groundMatrix;
|
glm::mat4 groundMatrix;
|
||||||
glm::quat rotation = glm::quat(1, 0, 0, 0);
|
glm::quat rotation = glm::quat(1, 0, 0, 0);
|
||||||
|
|
||||||
std::vector<glm::vec3> seaweedPosition;
|
std::vector<glm::vec3> plantPosition;
|
||||||
std::vector<glm::vec3> fishPosition;
|
std::vector<glm::vec3> fishPosition;
|
||||||
std::vector<fish> fishList;
|
std::vector<fish> fishList;
|
||||||
std::vector<std::vector<particle>> particleList;
|
std::vector<std::vector<particle>> particleList;
|
||||||
@ -349,11 +351,11 @@ void initBubbles() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
void initSeaweed() {
|
void initSeaweed() {
|
||||||
for (int i = 0; i < SEAWEED_NUM; i++) {
|
for (int i = 0; i < SEAWEED_NUM + PLANT1_NUM; i++) {
|
||||||
float plantX = static_cast<float>(rand() % (2 * GROUND_XY) - GROUND_XY);
|
float plantX = static_cast<float>(rand() % (2 * GROUND_XY) - GROUND_XY);
|
||||||
float plantZ = static_cast<float>(rand() % (2 * GROUND_XY) - GROUND_XY);
|
float plantZ = static_cast<float>(rand() % (2 * GROUND_XY) - GROUND_XY);
|
||||||
glm::vec3 plant_pos = search_for_y(plantX, plantZ, groundModel);
|
glm::vec3 plant_pos = search_for_y(plantX, plantZ, groundModel);
|
||||||
seaweedPosition.push_back(plant_pos);
|
plantPosition.push_back(plant_pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -434,17 +436,23 @@ void renderSeaweed()
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < SEAWEED_NUM; i++) {
|
for (int i = 0; i < SEAWEED_NUM; i++) {
|
||||||
|
|
||||||
glm::mat4 seaweedMatrix = glm::translate(seaweedPosition[i]);
|
glm::mat4 seaweedMatrix = glm::translate(plantPosition[i]);
|
||||||
drawObjectColor(&seaweedContext, seaweedMatrix, glm::vec3(0.1f, 0.6f, 0.1f));
|
drawObjectColor(&seaweedContext, seaweedMatrix, glm::vec3(0.1f, 0.6f, 0.1f));
|
||||||
}
|
}
|
||||||
|
for (int i = SEAWEED_NUM; i < SEAWEED_NUM + PLANT1_NUM; i++)
|
||||||
|
{
|
||||||
|
glm::mat4 plant1Matrix = glm::translate(plantPosition[i]) * scale(glm::vec3(0.2f));
|
||||||
|
drawObjectTexture(&plantContext1, plant1Matrix, plantTexture1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void renderFish()
|
void renderFish()
|
||||||
{
|
{
|
||||||
|
|
||||||
glm::mat4 fishMatrix;
|
glm::mat4 fishMatrix1;
|
||||||
|
glm::mat4 fishMatrix2;
|
||||||
float fishSpeed = 0.05f;
|
float fishSpeed = 0.05f;
|
||||||
for (int i = 0; i < FISH_NUM; i++) {
|
for (int i = 0; i < FISH_NUM; i++) {
|
||||||
int result = rand() % (20000 - fishList[i].counter);
|
int result = rand() % (1200 - fishList[i].counter);
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
fishList[i].rotation = rand() % 4;
|
fishList[i].rotation = rand() % 4;
|
||||||
@ -455,23 +463,46 @@ void renderFish()
|
|||||||
fishList[i].counter += 1;
|
fishList[i].counter += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i % 2 == 0)
|
||||||
|
{
|
||||||
switch (fishList[i].rotation)
|
switch (fishList[i].rotation)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
fishList[i].position.z -= fishSpeed;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
fishList[i].position.x -= fishSpeed;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
fishList[i].position.z += fishSpeed;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
fishList[i].position.x += fishSpeed;
|
fishList[i].position.x += fishSpeed;
|
||||||
break;
|
break;
|
||||||
|
case 1:
|
||||||
|
fishList[i].position.z -= fishSpeed;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
fishList[i].position.x -= fishSpeed;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
fishList[i].position.z += fishSpeed;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
fishMatrix1 = glm::translate(fishList[i].position) * glm::rotate(glm::radians(fishList[i].rotation * 90.0f), glm::vec3(0, 1, 0)) * glm::scale(glm::vec3(1.7f));
|
||||||
|
drawObjectTexture(&fishContext1, fishMatrix1, fishTexture1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (fishList[i].rotation)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
fishList[i].position.z += fishSpeed;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
fishList[i].position.x += fishSpeed;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
fishList[i].position.z -= fishSpeed;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
fishList[i].position.x -= fishSpeed;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
fishMatrix2 = glm::translate(fishList[i].position) * glm::rotate(glm::radians(fishList[i].rotation * 90.0f), glm::vec3(0, 1, 0)) * glm::scale(glm::vec3(0.5f));
|
||||||
|
drawObjectTexture(&fishContext2, fishMatrix2, fishTexture2);
|
||||||
}
|
}
|
||||||
fishMatrix = glm::translate(fishList[i].position) * glm::rotate(glm::radians(fishList[i].rotation * 90.0f), glm::vec3(0, 1, 0));
|
|
||||||
drawObjectColor(&fishContext, fishMatrix, fishList[i].color);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void renderBubbles()
|
void renderBubbles()
|
||||||
@ -589,23 +620,30 @@ void init()
|
|||||||
|
|
||||||
groundModel = obj::loadModelFromFile("models/ground.obj");
|
groundModel = obj::loadModelFromFile("models/ground.obj");
|
||||||
seaweedModel = obj::loadModelFromFile("models/seaweed.obj");
|
seaweedModel = obj::loadModelFromFile("models/seaweed.obj");
|
||||||
fishModel = obj::loadModelFromFile("models/fish.obj");
|
fishModel1 = obj::loadModelFromFile("models/fish1.obj");
|
||||||
|
fishModel2 = obj::loadModelFromFile("models/fish2.obj");
|
||||||
submarineModel = obj::loadModelFromFile("models/submarine.obj");
|
submarineModel = obj::loadModelFromFile("models/submarine.obj");
|
||||||
particleModel = obj::loadModelFromFile("models/sphere.obj");
|
particleModel = obj::loadModelFromFile("models/sphere.obj");
|
||||||
geyserModel = obj::loadModelFromFile("models/geyser.obj");
|
geyserModel = obj::loadModelFromFile("models/geyser.obj");
|
||||||
|
plantModel1 = obj::loadModelFromFile("models/plant1.obj");
|
||||||
|
|
||||||
groundTexture = Core::LoadTexture("textures/sand.jpg");
|
groundTexture = Core::LoadTexture("textures/diffuse.jpg");
|
||||||
seaweedTexture = Core::LoadTexture("textures/sea.jpg");
|
seaweedTexture = Core::LoadTexture("textures/sea.jpg");
|
||||||
submarineTexture = Core::LoadTexture("textures/Base_color.png");
|
submarineTexture = Core::LoadTexture("textures/Base_color.png");
|
||||||
particleTexture = Core::LoadTexture("textures/bubble.jpg");
|
particleTexture = Core::LoadTexture("textures/bubble2.png");
|
||||||
geyserTexture = Core::LoadTexture("textures/geyser.jpg");
|
geyserTexture = Core::LoadTexture("textures/geyser.jpg");
|
||||||
|
fishTexture1 = Core::LoadTexture("textures/fish1.jpg");
|
||||||
|
fishTexture2 = Core::LoadTexture("textures/fish2.png");
|
||||||
|
plantTexture1 = Core::LoadTexture("textures/plant1.png");
|
||||||
|
|
||||||
groundContext.initFromOBJ(groundModel);
|
groundContext.initFromOBJ(groundModel);
|
||||||
seaweedContext.initFromOBJ(seaweedModel);
|
seaweedContext.initFromOBJ(seaweedModel);
|
||||||
fishContext.initFromOBJ(fishModel);
|
fishContext1.initFromOBJ(fishModel1);
|
||||||
|
fishContext2.initFromOBJ(fishModel2);
|
||||||
submarineContext.initFromOBJ(submarineModel);
|
submarineContext.initFromOBJ(submarineModel);
|
||||||
particleContext.initFromOBJ(particleModel);
|
particleContext.initFromOBJ(particleModel);
|
||||||
geyserContext.initFromOBJ(geyserModel);
|
geyserContext.initFromOBJ(geyserModel);
|
||||||
|
plantContext1.initFromOBJ(plantModel1);
|
||||||
|
|
||||||
initFish();
|
initFish();
|
||||||
initSeaweed();
|
initSeaweed();
|
||||||
|
BIN
cw 2/textures/bubble2.png
Normal file
BIN
cw 2/textures/bubble2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 MiB |
BIN
cw 2/textures/diffuse.jpg
Normal file
BIN
cw 2/textures/diffuse.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 MiB |
BIN
cw 2/textures/fish1.jpg
Normal file
BIN
cw 2/textures/fish1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
BIN
cw 2/textures/fish2.jpg
Normal file
BIN
cw 2/textures/fish2.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 940 KiB |
BIN
cw 2/textures/fish2.png
Normal file
BIN
cw 2/textures/fish2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.8 MiB |
BIN
cw 2/textures/plant1.png
Normal file
BIN
cw 2/textures/plant1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 248 KiB |
Loading…
Reference in New Issue
Block a user