Ocean Simulation

1277 篇文章 12 订阅
786 篇文章 9 订阅


I love games which can change the entire mechanics of its self by creating a world that is something different. This is what the Mario Galaxy games did by creating planetary bodies to open up a variety of new mechanics that otherwise would not have been available. And this is also something Assassins Creed Black Flag did with its ocean, creating a non-static world that was something I had never experienced before. It was a world with a personality, that could work with or against you.

Ever since I played the game I wanted to figure out how there ocean worked and create it. Lucky for me I came across an article that interviews an Ubisoft employee who explains how the ocean works entirely (Assassins Creed Tech Article).

One of the first thing I wanted to get right before anything else was getting the waves procedurally animating on a plane. With a series of values that I could adjust to change the size, speed, or shape of waves. Before I could do any of this I had to study into Gerstner waves. A Gerstner wave is a wave that forms peaks and troughs. And the collective Gerstner waves is a summation of multiple individual Gerstner waves of different amplitudes and wave lengths to form a fractal implementation.

I decided to work with the Unreal Engine, because I enjoy working with its Blueprint system for creating shaders. The implementation of Gerstner waves into a shader also went rather well with the use of this GPU gems chapter of water simulation (GPU Gems Water simulation Article). Helpful laying out all the equations I need to implement this functionality. Though I came across an annoying issue that I have never seen before. For some reason Unreal Engine shaders do not use radians or degrees. Instead they use a normalised value between 0 and 1. So 2pi (Radians) = 360 (degrees) = 1 (Unreal). I do not understand why it does this, but it took a long time to debug.

I managed to get the shader set up, and a manager that could send down values to the shader in order to control the shape, speed, or size of the waves being created. The end result was very effective, and am quite happy with this first step.

 

Advertisements

I love games which can change the entire mechanics of its self by creating a world that is something different. This is what the Mario Galaxy games did by creating planetary bodies to open up a variety of new mechanics that otherwise would not have been available. And this is also something Assassins Creed Black Flag did with its ocean, creating a non-static world that was something I had never experienced before. It was a world with a personality, that could work with or against you.

Ever since I played the game I wanted to figure out how there ocean worked and create it. Lucky for me I came across an article that interviews an Ubisoft employee who explains how the ocean works entirely (Assassins Creed Tech Article).

One of the first thing I wanted to get right before anything else was getting the waves procedurally animating on a plane. With a series of values that I could adjust to change the size, speed, or shape of waves. Before I could do any of this I had to study into Gerstner waves. A Gerstner wave is a wave that forms peaks and troughs. And the collective Gerstner waves is a summation of multiple individual Gerstner waves of different amplitudes and wave lengths to form a fractal implementation.

I decided to work with the Unreal Engine, because I enjoy working with its Blueprint system for creating shaders. The implementation of Gerstner waves into a shader also went rather well with the use of this GPU gems chapter of water simulation (GPU Gems Water simulation Article). Helpful laying out all the equations I need to implement this functionality. Though I came across an annoying issue that I have never seen before. For some reason Unreal Engine shaders do not use radians or degrees. Instead they use a normalised value between 0 and 1. So 2pi (Radians) = 360 (degrees) = 1 (Unreal). I do not understand why it does this, but it took a long time to debug.

I managed to get the shader set up, and a manager that could send down values to the shader in order to control the shape, speed, or size of the waves being created. The end result was very effective, and am quite happy with this first step.

 

Advertisements
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Game Development and Simulation with Unreal Technology explores the use of Unreal Engine 4 (UE4) for the development of real-time digital interactive contents to be used in computerized games or simulations. The engine is considered in three main iterations: from the basic use of the engine to build games and simulation content out of the box, to intermediate design of interactive content by building on the pre-supplied contents from the base engine, and through advanced implementations geared toward a comprehensive understanding of the power of the Unreal Engine. This is one of the first books on developing interactive content for games, entertainment, and simulation to cover the newly released UE4. Industry-level game concepts in level design, coding, and programming, networking, and multiplayer concepts are covered. The book presents beginner- through advanced-level concepts in designing and developing games with the Unreal Engine 4. It includes small/mid-scale projects developed as concept examples throughout the book, which can be used in more comprehensive and entertaining interactive computer simulations and games. The book is organized into three parts. Part 1 covers the basics of the unreal engine, including an overview of each subcomponent of the engine, an overview of the UE4 project templates, and the main features each provides. Part 2 delves into more advanced topics in the new UE4 material pipeline, including layered materials and different shading models. Part 3 walks you through the steps of building your own games with UE4. It also provides advanced coverage of Blueprint systems in UE4. Each chapter includes do-it-yourself extensions to the concept modules presented to solidify your understanding of the concepts and techniques. Exercises and summaries are also included at the end of each chapter to help take your understanding of Unreal Engine 4 to the next level. Table of Contents SECTION I Unreal Technology Basics: Introductory Development Techniques Chapter 1 Setting up Unreal Project Templates Chapter 2 Introduction to Level Design in Unreal Technology Chapter 3 Unreal Visual Scripting with Blueprints Chapter 4 Materials in Unreal Engine SECTION II Making Game Worlds Stand Out: Intermediate Development Concepts Chapter 5 Advanced Material Concepts in Unreal Engine Chapter 6 Visual Effects and Cascade in Unreal Engine Chapter 7 Terrains and Landscapes in Unreal Engine SECTION III Example Games: Advanced Game Development Concepts Chapter 8 Advanced Blueprint Concepts Chapter 9 A Top-Down Game with Blueprints Appendix A Material Expressions in Unreal Engine 4 Appendix B Distributions in Unreal Engine 4 Appendix C The Curve Editor in Unreal Engine 4

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值