Skytiles


我们是一个

集创意、策划、设计、营销于

一体的创新团队

The program is a real-time tile rendering system with three switchable maps, smooth camera control, and frustum culling for performance optimization.

Scroll Down

01
Our Story

Program Skills


Program Skills


Our program primarily demonstrates the loading transition between large and small maps, illustrates the relationship between the camera and the screen, loads maps using JSON, and utilizes different key inputs to perform visual clipping and return to the camera view.

Our program primarily demonstrates the loading transition between large and small maps, illustrates the relationship between the camera and the screen, loads maps using JSON, and utilizes different key inputs to perform visual clipping and return to the camera view.

查看更多

02

Key Feature

Key features

Key features

以业务为核心的设计

以业务为核心的设计

Frustum Culling

Use G as the toggle switch to enable frustum culling, then press F to perform visual culling. The principle behind this is

Use G as the toggle switch to enable frustum culling, then press F to perform visual culling. The principle behind this is

联系我们

联系我们

联系我们

超出客户预期

超出客户预期

超出客户预期

我们所做的一切都是为了实现您战略目标,从本质上讲,我们的设计使您的业务成功的有效方式

我们所做的一切都是为了实现您战略目标,从本质上讲,我们的设计使您的业务成功的有效方式

联系我们

联系我们

联系我们

深入研究密切沟通

深入研究密切沟通

Tile Distribution

You can use the spacebar to randomly load tile distributions. We achieve this by slicing a large tilesheet and then randomly distributing the pieces.

You can use the spacebar to randomly load tile distributions. We achieve this by slicing a large tilesheet and then randomly distributing the pieces.

联系我们

联系我们

联系我们

以业务为核心的设计

Frustum Culling

以业务为核心的设计

我们所做的一切都是为了实现您战略目标,从本质上讲,我们的设计使您的业务成功的有效方式

Use G as the toggle switch to enable frustum culling, then press F to perform visual culling. The principle behind this is

我们所做的一切都是为了实现您战略目标,从本质上讲,我们的设计使您的业务成功的有效方式

联系我们

more

联系我们

联系我们

超出客户预期

Tile Distribution

超出客户预期

我们所做的一切都是为了实现您战略目标,从本质上讲,我们的设计使您的业务成功的有效方式

You can use the spacebar to randomly load tile distributions. We achieve this by slicing a large tilesheet and then randomly distributing the pieces.

我们所做的一切都是为了实现您战略目标,从本质上讲,我们的设计使您的业务成功的有效方式

联系我们

more

联系我们

联系我们

深入研究密切沟通

Map Switching

深入研究密切沟通

我们所做的一切都是为了实现您战略目标,从本质上讲,我们的设计使您的业务成功的有效方式

Press TAB to toggle between the Small and Large maps, and R for the Medium map. All three maps are loaded from JSON definitions; culling and camera bounds adapt per map.


我们所做的一切都是为了实现您战略目标,从本质上讲,我们的设计使您的业务成功的有效方式

联系我们

联系我们

联系我们

more

03
Our Services

Technical Barricade

Technical Barricade

more

合作咨询

合作咨询

致力于为国内外品牌和企业提供极致的数字创意服务,为重塑新一代互联网用户体验,我们的奇思妙想帮助企业率先触摸未来。我们的工作永远以客户为中心,从策略、创意、设计,到可扩展的品牌数字化、商务、移动和数字平台,我们愿始终于合作客户并肩作战,联合创新,共同实现价值。

01/
01/
What is a frustum, and what significance does it hold in this project presentation?
What is a frustum, and what significance does it hold in this project presentation?
A frustum is a three-dimensional shape formed by slicing the top off a cone or a pyramid with a plane parallel to its base. This creates two parallel faces—one larger and one smaller—connected by sloping sides.
01/
01/
What is a frustum, and what significance does it hold in this project presentation?
What is a frustum, and what significance does it hold in this project presentation?
A frustum is a three-dimensional shape formed by slicing the top off a cone or a pyramid with a plane parallel to its base. This creates two parallel faces—one larger and one smaller—connected by sloping sides.
01/
01/
What is a frustum, and what significance does it hold in this project presentation?
What is a frustum, and what significance does it hold in this project presentation?
A frustum is a three-dimensional shape formed by slicing the top off a cone or a pyramid with a plane parallel to its base. This creates two parallel faces—one larger and one smaller—connected by sloping sides.
01/
01/
What is a frustum, and what significance does it hold in this project presentation?
What is a frustum, and what significance does it hold in this project presentation?
A frustum is a three-dimensional shape formed by slicing the top off a cone or a pyramid with a plane parallel to its base. This creates two parallel faces—one larger and one smaller—connected by sloping sides.
01/
01/
What is a frustum, and what significance does it hold in this project presentation?
What is a frustum, and what significance does it hold in this project presentation?
A frustum is a three-dimensional shape formed by slicing the top off a cone or a pyramid with a plane parallel to its base. This creates two parallel faces—one larger and one smaller—connected by sloping sides.
01/
01/
What is a frustum, and what significance does it hold in this project presentation?
What is a frustum, and what significance does it hold in this project presentation?
A frustum is a three-dimensional shape formed by slicing the top off a cone or a pyramid with a plane parallel to its base. This creates two parallel faces—one larger and one smaller—connected by sloping sides.
01/
01/
What is a frustum, and what significance does it hold in this project presentation?
What is a frustum, and what significance does it hold in this project presentation?
A frustum is a three-dimensional shape formed by slicing the top off a cone or a pyramid with a plane parallel to its base. This creates two parallel faces—one larger and one smaller—connected by sloping sides.
01/
01/
What is a frustum, and what significance does it hold in this project presentation?
What is a frustum, and what significance does it hold in this project presentation?
A frustum is a three-dimensional shape formed by slicing the top off a cone or a pyramid with a plane parallel to its base. This creates two parallel faces—one larger and one smaller—connected by sloping sides.
02/
02/
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Using the Tab key to switch between the large map and the small map, with tilesets and tilemaps for data storage, and IDs with an unordered map for tile access.
02/
02/
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Using the Tab key to switch between the large map and the small map, with tilesets and tilemaps for data storage, and IDs with an unordered map for tile access.
02/
02/
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Using the Tab key to switch between the large map and the small map, with tilesets and tilemaps for data storage, and IDs with an unordered map for tile access.
02/
02/
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Using the Tab key to switch between the large map and the small map, with tilesets and tilemaps for data storage, and IDs with an unordered map for tile access.
02/
02/
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Using the Tab key to switch between the large map and the small map, with tilesets and tilemaps for data storage, and IDs with an unordered map for tile access.
02/
02/
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Using the Tab key to switch between the large map and the small map, with tilesets and tilemaps for data storage, and IDs with an unordered map for tile access.
02/
02/
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Using the Tab key to switch between the large map and the small map, with tilesets and tilemaps for data storage, and IDs with an unordered map for tile access.
02/
02/
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Does switching between the small and large maps cause frame rate changes? Because transitioning from a 48x48 small map to a 1024x1024 large map may present certain challenges.
Using the Tab key to switch between the large map and the small map, with tilesets and tilemaps for data storage, and IDs with an unordered map for tile access.
03/
03/
Using Json to load new map
Using Json to load new map
Instead of using the original data structure, JSON is used to store tile information, which is then extracted to load the map.
03/
03/
Using Json to load new map
Using Json to load new map
Instead of using the original data structure, JSON is used to store tile information, which is then extracted to load the map.
03/
03/
Using Json to load new map
Using Json to load new map
Instead of using the original data structure, JSON is used to store tile information, which is then extracted to load the map.
03/
03/
Using Json to load new map
Using Json to load new map
Instead of using the original data structure, JSON is used to store tile information, which is then extracted to load the map.
03/
03/
Using Json to load new map
Using Json to load new map
Instead of using the original data structure, JSON is used to store tile information, which is then extracted to load the map.
03/
03/
Using Json to load new map
Using Json to load new map
Instead of using the original data structure, JSON is used to store tile information, which is then extracted to load the map.
03/
03/
Using Json to load new map
Using Json to load new map
Instead of using the original data structure, JSON is used to store tile information, which is then extracted to load the map.
03/
03/
Using Json to load new map
Using Json to load new map
Instead of using the original data structure, JSON is used to store tile information, which is then extracted to load the map.
04/
04/
Game Camera Mechanism
Game Camera Mechanism
The camera has defined bounds, and a boolean controls the frustum toggle. Pressing the “C” key resets the camera to the center of the map.
04/
04/
Game Camera Mechanism
Game Camera Mechanism
The camera has defined bounds, and a boolean controls the frustum toggle. Pressing the “C” key resets the camera to the center of the map.
04/
04/
Game Camera Mechanism
Game Camera Mechanism
The camera has defined bounds, and a boolean controls the frustum toggle. Pressing the “C” key resets the camera to the center of the map.
04/
04/
Game Camera Mechanism
Game Camera Mechanism
The camera has defined bounds, and a boolean controls the frustum toggle. Pressing the “C” key resets the camera to the center of the map.
04/
04/
Game Camera Mechanism
Game Camera Mechanism
The camera has defined bounds, and a boolean controls the frustum toggle. Pressing the “C” key resets the camera to the center of the map.
04/
04/
Game Camera Mechanism
Game Camera Mechanism
The camera has defined bounds, and a boolean controls the frustum toggle. Pressing the “C” key resets the camera to the center of the map.
04/
04/
Game Camera Mechanism
Game Camera Mechanism
The camera has defined bounds, and a boolean controls the frustum toggle. Pressing the “C” key resets the camera to the center of the map.
04/
04/
Game Camera Mechanism
Game Camera Mechanism
The camera has defined bounds, and a boolean controls the frustum toggle. Pressing the “C” key resets the camera to the center of the map.
04
Our Work

Our Work

Our Work

05
News

Skills derived from Raylib(C++) Skytiles, extending into OpenGL and other computer graphics techniques.

Skills derived from Raylib(C++) Skytiles, extending into OpenGL and other computer graphics techniques.

More

合作咨询

致力于为国内外品牌和企业提供极致的数字创意服务,为重塑新一代互联网用户体验,我们的奇思妙想帮助企业率先触摸未来。我们的工作永远以客户为中心,从策略、创意、设计,到可扩展的品牌数字化、商务、移动和数字平台,我们愿始终于合作客户并肩作战,联合创新,共同实现价值。

Using OpenGL to culling
Using OpenGL to culling
I extended the frustum culling concept from Skytiles by studying how it is handled in modern graphics pipelines using OpenGL. This involved understanding the transformation from world space to clip space using the view-projection matrix and how the GPU performs clipping against the canonical view volume. This helped bridge my Raylib implementation with lower-level rendering concepts.
I extended the frustum culling concept from Skytiles by studying how it is handled in modern graphics pipelines using OpenGL. This involved understanding the transformation from world space to clip space using the view-projection matrix and how the GPU performs clipping against the canonical view volume. This helped bridge my Raylib implementation with lower-level rendering concepts.

查看更多

link

25
2024.11
Using the SAT (Separating Axis Theorem) for detecting collisions between different polygons.
Using the SAT (Separating Axis Theorem) for detecting collisions between different polygons.
I implemented the Separating Axis Theorem (SAT) to detect collisions between convex polygons. This method is commonly used in physics engines and game simulations. Through this implementation, I explored geometric reasoning, projection tests, and vector math, strengthening the physics interaction layer for future gameplay extensions in Skytiles.
I implemented the Separating Axis Theorem (SAT) to detect collisions between convex polygons. This method is commonly used in physics engines and game simulations. Through this implementation, I explored geometric reasoning, projection tests, and vector math, strengthening the physics interaction layer for future gameplay extensions in Skytiles.

查看更多

link

31
2024.10
Graphics System Expansion
Graphics System Expansion
This project led me deeper into real-time rendering and interactive graphics system design. I worked with topics such as camera matrices, chunk-based world streaming, texture sampling, performance-aware rendering, and visibility testing. I am currently extending Skytiles toward OpenGL Core profiles and shader programming, building a stronger foundation for future rendering and engine development work.
This project led me deeper into real-time rendering and interactive graphics system design. I worked with topics such as camera matrices, chunk-based world streaming, texture sampling, performance-aware rendering, and visibility testing. I am currently extending Skytiles toward OpenGL Core profiles and shader programming, building a stronger foundation for future rendering and engine development work.

查看更多

link

29
2024.09

Copyright -2024creght.com

Download Link 

link

#808.NO.88 Tiianfu Guangchang.Chengdu.China

Copyright -2024creght.com

Download Link 

link

#808.NO.88 Tiianfu Guangchang.Chengdu.China

Copyright -2024creght.com

Download Link 

link

#808.NO.88 Tiianfu Guangchang.Chengdu.China