zhililab / Znotes

个人随记,个人规划
0 stars 0 forks source link

计算机图形学 #24

Open zhililab opened 4 years ago

zhililab commented 4 years ago

计算机图形学知识体系

光栅化

着色

几何

光线追踪

材质与外观

高级光纤传播与复杂外观建模

相机与透镜

光场、颜色与感知

动画与模拟

zhililab commented 4 years ago

游戏引擎

1.组成部分

image

Some game engines only provide real-time 3D rendering capabilities instead of the wide range of functionality needed by games. These engines rely upon the game developer to implement the rest of this functionality or to assemble it from other game-middleware components. These types of engines are generally referred to as a "graphics engine", "rendering engine", or "3D engine" instead of the more encompassing term "game engine".

Examples of graphics engines include: Crystal Space, Genesis3D, Irrlicht, OGRE, RealmForge, Truevision3D, and Vision Engine.

2.游戏引擎

https://www.wikiwand.com/en/List_of_game_engines

zhililab commented 3 years ago

光栅化

✔️ 光栅化存在走样?

基本问题

image

分析

傅里叶变换 :任何一个函数都可以分解成频率的组合

zhililab commented 3 years ago

Vulkan

Vulkan Example

zhililab commented 3 years ago

Lumberyard 中的脚本技术

✔️ 行为上下文

可使用行为上下文来反射运行时代码,使它可通过脚本语言(如 Lua)或脚本编写环境(如 Lumberyard 的脚本 Canvas)访问。行为上下文提供调用运行时 C++ 代码的绑定。可以使用行为上下文为脚本绑定如下 C++ 结构:

基础版==>将方法反射为自由函数或类的一部分,然后我们就可以通过反射的类访问这些类方法

您可以将方法反射为自由函数或类的一部分,如以下示例所示:

// This method is reflected as a free function:
behaviorContext->Method("AZTestAssert", &AZTestAssert);

// This method is reflected as a part of a class:
behaviorContext->Class<MyMath>("MyMath")
    ->Method("Cos", &cosf)
; 

在前面的示例中,为脚本编写而反射的类方法可通过反射的类访问:

-- Method from a class
local math = MyMath()
local result = math:Cos(3.14) 

-- Free method
AZTestAssert(ScriptClass ~= nil)

进阶版==> 当我们将方法绑定到行为上下文时,可以提供包含方法名称并描述其参数的字符串数组。

// Given this method:
bool BoundsCheckMethodWithDefaultValue(float value, float epsilon, float minBounds, float maxBounds)
{
    (void)epsilon;
    return value >= minBounds && value < maxBounds;
} 
// Bind the given method to the behavior context with friendly argument names. 
Method("MemberWithDefaultValues", &BehaviorTestClass::BoundsCheckMethodWithDefaultValue,
                                  { {{"value", "Value which will be checked to be within the two bounds arguments"},
                                     {"delta", "The epsilon value", BehaviorMakeDefaultValue(0.1f)},
                                     {"minBound", "The minimum bounds value,", BehaviorMakeDefaultValue(0.0f)},
                                     {"maxBound", "The maximum bounds value", BehaviorMakeDefaultValue(1.0f)}} }
                       );

这种方法在 Lumberyard 的脚本画布中尤其有用,让用户能够了解他们应该提供的参数的含义。

✔️ 编写 Lua 脚本

zhililab commented 3 years ago

C++ Reflection

zhililab commented 3 years ago

Lua 介绍

image

Lua如何在游戏中用作脚本语言? lua脚本在游戏中的应用

zhililab commented 1 year ago

数学在王者荣耀中的应用主要体现在游戏机制和策略分析中。

在游戏机制方面,一些数学知识,比如几何概率统计离散数学等,被应用到了游戏场景中,比如英雄技能范围、移动路径规划、伤害计算、物品属性加成等等。游戏中许多数值调整和规则设计也需要一定的数学知识,比如平衡性调整、经济设计、掉落概率设计等等。

在策略分析方面,一些数学方法被用来进行策略分析,比如概率分析决策树博弈论等等。通过对游戏中的英雄、技能、装备等进行分析,可以得出最优的组合策略和打法,帮助玩家更好地获胜。

总之,数学作为一门科学,可以在很多方面为王者荣耀提供帮助和支持,让游戏更加有趣和挑战。

zhililab commented 1 year ago

蔡文姬

蔡文姬是一位辅助型法师英雄,可以对敌人进行控制和减速,提供给队友回复和增益效果,同时也有一定的伤害输出能力。下面是蔡文姬的出装和打法建议:

出装建议:

魅影面罩:提供法术攻击、法术吸血和减少受到伤害的效果,适合用来增加蔡文姬的生存能力。 守护者之铠:提供法术防御和减少受到伤害的效果,适合用来增加蔡文姬的生存能力。 法术鞋:提供移动速度和减少技能冷却时间的效果,适合用来增加蔡文姬的机动性和输出能力。 圣杯:提供法术强度、法术吸血和回复效果,适合用来提高蔡文姬的回复和支援能力。 虚无法杖:提供大量法术攻击和法术穿透效果,适合用来增加蔡文姬的输出能力。 冰霜法杖:提供法术攻击和减速效果,适合用来增加蔡文姬的输出和控制能力。

打法建议:

在前期,可以利用蔡文姬的控制能力辅助队友进行击杀,并提供回复和增益效果。 在中后期,可以利用蔡文姬的输出能力进行团队输出,同时也要注意给队友提供回复和增益效果,增加团队的生存能力。 在团战中,蔡文姬的主要作用是提供回复和增益效果,同时进行控制和减速。 在团战中,要注意控制好蔡文姬的位置,避免被对方的刺客等英雄直接攻击。 在使用技能时,要注意蔡文姬的蓝量,合理利用技能,不要过度消耗蓝量,影响团队的战斗力。