我想知道为什么在Simplex问世后,Perlin噪音仍然如此受欢迎.单一噪声是由Ken Perlin自己制作的,并且它假设接管他的旧算法,这种算法对于更高的尺寸和更好的质量(没有可见的伪像)来说是缓慢的.
单面噪声在2001年出现,在过去的10年里,我只看到人们谈论Perlin噪声,当涉及到为地形生成高度图,创建程序纹理等等.
任何人都可以帮助我,Simplex噪音有一些缺点吗?我听说有传言说Perlin噪音在1D和2D噪音方面更快,但我不知道它是否真实.
谢谢!
我需要一个伪随机数生成器,它从float类型的两个输入中给出一个范围[-1,1](范围是可选的)中的数字.
我也会尝试解释为什么需要它:
我正在使用Diamond-Square算法为我的地形引擎创建高度贴图.地形被分成补丁(Chunked LOD).
Diamond-Square的问题在于它使用随机函数,所以假设两个邻居补丁共享相同的点(x,z)然后我希望它们的高度相同,这样我就不会得到一些破解影响.
有人可能会说我可以从邻居补丁中获取高度信息,但是在首先创建补丁之后结果可能会有所不同.
这就是为什么我需要一个伪数发生器,它返回一个给定两个输入的唯一数字,即(x,z).
(我不是要求别人写这样的功能,我只需要一般反馈和/或类似的已知算法).
我有一个基于网格的游戏(平台游戏),我把所有东西都放在了瓷砖上.我有坚固和液体的瓷砖.我正试图找到一种很好的方法来使水砖以粗糙的方式模拟水.
目前我有现行系统:当水砖在另一个水砖上方添加时,它会在下面的水砖上加1.数字表示压力.
这就是目前的样子:
[0] <- This water tile has 0 in pressure.
[1] <- This water tile has 1 in pressure.
Run Code Online (Sandbox Code Playgroud)
如果我在底部附近添加另一个水砖,它会从左侧,右侧和上方搜索是否有水砖,并继承其周围的最大压力.
例:
[0]
[1][1]
Run Code Online (Sandbox Code Playgroud)
添加少量水砖后,这是一个更大的例子:
[0][0]
[1][1][1][1]
[2][2][2][2][2]
Run Code Online (Sandbox Code Playgroud)
然后我制作压力等于或大于1的每个水瓦片如果有自由空间则尝试向左/向右移动,然后将压力设置为0并检查是否可以从邻近的水瓦片中继承压力(如果有的话).
除了从顶部移除水瓦片的情况之外,该系统工作得非常好.
如果我从上一个示例中删除顶部水砖:
[1][1][1][1]
[2][2][2][2][2]
Run Code Online (Sandbox Code Playgroud)
然后我们有压力为1的顶行,现在应该有0,底行应该有1.
是否有一些更智能的系统我可以更好地实现这一点?
以下是限制:
每个图块只能检查其邻居图块.平铺可以定义任何功能.Tile可以有任何变量来存储数据.
你们能想出一个比我更好的系统吗?
我通常的测试案例是:
[]
[] should become [][]
[]
[]
[] should become [][][]
[]
[][][] should become [][][][]
Run Code Online (Sandbox Code Playgroud)
假设游戏运行了一段时间.
任何建议都会受到欢迎!
我在我的网站的URL中允许使用星号(*)时遇到了麻烦.我正在运行ASP.NET MVC 2和.NET 4.0.
这是一个描述问题的例子:
http://mysite.com/profile/view/Nice*
用户名是Nice*,ASP.NET说URL中有非法字符:
Illegal characters in path.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: Illegal characters in path.
Run Code Online (Sandbox Code Playgroud)
我已经尝试了我在网上看到的所有Web.config方法,例如:
<pages validateRequest="false">
Run Code Online (Sandbox Code Playgroud)
和
<httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" />
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:是否可以在URL中允许使用星号?如果没有,.NET中是否有一些编码方法可以编码星号(*)?
谢谢!
我正在尝试使用Facebook Graph API从Facebook活动中获取所有照片和视频.
目前我正在使用/{event-id}/feed端点,这里描述https://developers.facebook.com/docs/graph-api/reference/v2.6/event/feed
通过指定我想要的字段,我几乎可以从此端点获得所需的一切,但是我无法以全分辨率获取视频的URL.我可以通过另一个API调用轻松获取它们,但我想避免为所有视频进行另一个API调用,如果可能的话.
请注意,/{event-id}/feed端点返回一个数组Post objects,这是我使用fields查询参数查询的数组.
https://developers.facebook.com/docs/graph-api/reference/v2.6/post
这是我在调用/{event-id}/feed端点时指定的字段
https://graph.facebook.com/v2.6/{event-id}/feed?fields=attachments,id,created_time,caption,from,name,message,message_tags,source,type,status_type,properties,object_id,picture&access_token={access-token}
Run Code Online (Sandbox Code Playgroud)
该attachments字段为我提供高分辨率视频的图像URL和视频本身的ID.这意味着我需要进行额外的API调用才能使用/{video-id}端点以高分辨率获取视频URL .
"attachments": {
"data": [
{
"media": {
"image": {
"height": 405,
"src": "https://scontent.xx.fbcdn.net/v/t15.0-10/s720x720/13433040_10154318390596912_1315696369_n.jpg?oh=46987fa671df2deca3ce935a68e1ff30&oe=58008D60",
"width": 720
}
},
"target": {
"id": "10154318389716912",
"url": "https://www.facebook.com/{username-removed}/videos/10154318389716912/"
},
"type": "video_autoplay",
"url": "https://www.facebook.com/{username-removed}/videos/10154318389716912/"
}
]
}
Run Code Online (Sandbox Code Playgroud)
该source字段为我提供了低分辨率视频的链接.
"source": "https://video.xx.fbcdn.net/v/t42.1790-2/13543016_152852391800500_1248221173_n.mp4?efg=eyJybHIiOjMxMywicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0\u00253D&rl=313&vabr=174&oh=f0f42856741b81030ea529fe89f80834&oe=5771B45B"
Run Code Online (Sandbox Code Playgroud)
该object_id字段为我提供了视频ID.
该properties字段为我提供了视频的长度.
所以我运气不好.我想知道是否可以进行一些嵌套调用,这将给我高分辨率视频的URL,或者我是否可以使用返回302重定向到视频的视频ID调用某个端点.我可以修改源URL的参数吗?
任何帮助深表感谢.谢谢!
我一直在阅读很多关于使用时的最佳实践HttpClient.大多数人建议在应用程序的生命周期中重复使用它,即使它是IDisposable.
我的Web应用程序正在与各种API进行通信,如Facebook Graph API,Twitter API和Instagram API.
计划是为它传达的每个API创建一个单独的HttpClient,这是推荐的,因为这样我就可以重用一些头文件.
但现在问题是,让我们以Twitter API为例,使用我的Web应用程序的每个用户都有自己的授权标头(用户绑定访问令牌).我相信这意味着我无法将授权标头设置为HttpClient对象的DefaultRequestHeaders .
重用HttpClient具有不同授权标头的多个用户时,最佳做法是什么?
我可以HttpRequestMessage为每个请求创建一个对象,并在httpRequestMessage对象上设置授权头,而不是将其设置为默认值httpClient.DefaultRequestHeaders.Authorization吗?
谢谢.
我正在创建一个 UserControl 并向其传递一个变量。
如果我这样做的话效果很好:
<uc:TestControl ID="testControl" runat="server" Variable="test"></uc:TestControl>
Run Code Online (Sandbox Code Playgroud)
但是我想将动态变量传递给控件,如下所示:
<uc:TestControl ID="testControl" runat="server" Variable="<%=dynamicVariable%>"></uc:TestControl>
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这不起作用,我知道我可以在 Page_Load 上分配它,但我不喜欢这种方式。
所以我想知道这是否可能。有没有办法将动态变量分配给我上面想要的属性?或者我需要在 Page_Load 中执行此操作吗?
对于任何反馈,我们都表示感谢!谢谢!
我正在GPU上生成纹理并将其渲染到我自己的帧缓冲对象.它工作正常,纹理呈现为WebGLTexture,我可以传递给其他着色器.但是我想在javascript中访问WebGLTexture像素.有没有办法实现这一目标?
目前我正在使用gl.ReadPixels在我将纹理绘制到我的帧缓冲区后读取像素.这工作正常,但如果我可以直接访问WebGLTextureObject中的像素会不会更好?
我想要实现的是:我有GLSL perlin噪声着色器,可以在GPU上渲染高清高度图和法线贴图.我想将高度图传递给CPU,以便我可以为网格生成顶点.我当然可以将顶点定位在顶点着色器中,但我需要在CPU中进行碰撞检测.
我希望我的问题很明确.欢迎任何反馈!
谢谢!
HttpClient我正在为我的 Web 应用程序正在通信的每个不同的 API创建一个实例。
我想使用依赖注入和SimpleInjector来注入HttpClient业务类。例如,我有ITwitterBusiness和IInstagramBusiness,并且它们都HttpClient在其构造函数中接受。
使用依赖注入注册多个相同类型的对象时,最佳实践是什么?
我很确定问题的一部分可能是我的设计,但这里有一些想法。
我的第一个想法是在 DI 注册中使用 delegate
container.Register<ITwitterBusiness>(() => new TwitterBusiness(httpClientTwitter));
Run Code Online (Sandbox Code Playgroud)
看起来很简单,但我不知道这种方法是否有任何不良副作用,例如使 SimpleInjector 运行速度变慢或者我是否破坏了某些设计模式。
我的第二个想法是使用基于上下文的注入 http://simpleinjector.readthedocs.io/en/latest/advanced.html#context-based-injection
我相信这将允许我将某个 HttpClient 实例注入某个类。仍然不确定这是如何工作的。
我很好奇是否可以纯粹通过设计来解决这个问题。例如通过创建虚拟类。我只是还没有找到任何好的例子,但是如果我理解正确,那么我可以创建虚拟类,例如HttpClientTwitter继承HttpClient,这样我就可以摆脱不明确的注册。
谢谢!
c# dependency-injection ambiguous simple-injector dotnet-httpclient
对于使用块(代码分割)的 React 网站来说,最好的缓存策略是什么?
在使用块之前,我只会在 CloudFront 中将所有内容缓存一年,并且在部署新版本的网站后删除旧文件并使缓存失效。效果很好。
然而,在我开始使用块之后,我开始遇到问题。一个常见的问题是,在部署新版本的站点后,我删除了旧文件并使缓存失效。一名用户已经在旧版本的网站上处于活动状态,并且他的网站版本尝试加载不再存在的块,因此该网站对他来说崩溃了。
一种可能的解决方案是将所有旧文件保留一个月或更长时间,并在部署过程中删除所有早于 X 个月的文件。
有没有更好的办法解决这个问题。我是否缺少 CRA(Create React App)提供的 Service Worker 提供的一些特殊功能?如果我没记错的话,它提供了某种缓存清除功能。
谢谢。
我正在用WebGL绘制地形。问题是我只使用4个顶点通过使用索引共享顶点来绘制单个四边形。因此,我无法为每个顶点上传唯一的重心坐标,因为它是共享的。
这是一张更清晰地显示问题的图片。

我没有可用于问号的重心坐标。(0,1,0)用于左上方,(0,0,1)用于上方,(1,0,0)用于左侧。因此,当我使用索引来保存顶点数时,绝对没有办法做到这一点。
我是否真的使用4个顶点(而不是6个顶点)来绘制四边形,从而节省了这么多的性能?如果不是这样,那是解决我的问题的最简单方法。但是我仍然很好奇是否有一种方法可以使用共享顶点。
我知道可以使用GL_LINES在线框中绘制地形,但我不喜欢这种方法,我想对线框有更多控制(例如,使其不透明)。
有人可能会问为什么我使用重心坐标在线框模式下绘制地形,这是因为在此演示中效果很好:
http://codeflow.org/entries/2012/aug/02/easy-wireframe-display-with-barycentric-coordinates/
因此,基本上我要寻找两件事:
谢谢!
asp.net ×3
.net ×2
c# ×2
textures ×2
webgl ×2
.net-4.0 ×1
algorithm ×1
ambiguous ×1
api ×1
attributes ×1
caching ×1
cdn ×1
facebook ×1
framebuffer ×1
grid ×1
httpclient ×1
indexing ×1
javascript ×1
math ×1
opengl-es ×1
perlin-noise ×1
random ×1
reactjs ×1
reusability ×1
simulation ×1
terrain ×1
tiles ×1
variables ×1
video ×1
webpack ×1