$16 for a *very* non-performant material? If this was intended for use in high-detail scenes, not meant for gameplay, one would generally just use a flipbook animation, or looping HD video texture (both of which are higher quality and available for free all over). I love options, but c'mon, that's pretty steep. $5, maybe. And you can loop in materials, using custom HLSL nodes. Also, there are better ways of doing this, all around. Somewhere on the forums, Ryan Brucks (of Epic fame) himself touched on this. I've personally been working on a cool water material (not "material blueprint", thankyouverymuch) and utility functions, and am close to the quality achieved here, sitting at ~180 instructions with everything "turned on". The kicker? It's pure procedural. No textures are needed. So this is cool, no doubt about that. In my humble opinion though, it's not "good". It doesn't run fast, and it's more complicated than it needs to be.
Lee is right - you can use a gradient effect when you vertex paint in your chosen 3d modelling platform (I've done it in max), meaning the wind effect shifts from nothing to maximum along the length of the leaf/branch/whatever.
All our team have game development backgrounds, and therefore understand how important it is that middleware is high quality and high performance. Unlike other middleware companies we respond to your needs - if you want a new feature just ask!
Elephant Memory Manager
Elephant has been designed to slot into any application easily, regardless of what platform you are developing on and takes only a few minutes to integrate with its’ simple API.
Once integrated, Elephant helps ensure that your application runs within memory budgets and allows you to implement just about any memory strategy you need. It can allocate across a range of memory areas, from a basic allocation scheme to one that can be used from system to VRAM.
Unlike most standard allocation systems, Elephant deals with a system’s native alignment requirements without wasting memory. If the system needs memory to be aligned on 64k boundaries it will do so and it will make sure it doesn’t waste any in between.
Because Elephant is heap based you can get the most out of the system by changing system modes, where available, giving your game a performance increase that a standard system doesn’t easily achieve. Our support can help you with this.
Goldfish Memory AnalyzerGoldfish is a tool that allows you to find memory leaks, excessive use and fragmentation problems quickly and easily. All in a clear, user friendly way. Other abilities include being able to monitor the memory you didn’t even know you had lost due to code use as well and memory operations on a frame by frame basis.
Working with the Elephant allocator, Goldfish allows real-time visualization of what is going on in your system, with minimum performance implications for your application.
- View the complete memory structure of you application.
- Compare memory snapshots in order to isolate leaks and memory consumption.
- Visually see where fragmentation has occurred and what has caused it.
- View each memory operation over time and between markers defined by you.
- Analyze the size of static/global variables in your executable.
Live View mode Live View is the latest feature included with Goldfish. It connects over the network to Elephant to provide a real time memory overview of your application. It is enabled using one line of code and has a negligible performance impact.
Live View will show you each Heap within Elephant, showing memory consumption for each. You can zoom in on memory or zoom out to get a larger overview.
At any point you can take a snapshot of all the memory in system and view it instantly.
View the fragmentationYou can view all allocations and fragments from Elephant memory snapshots. With certain configurations you see the name you associated with the allocation (or free). Elephant also stores a callstack for each operation. This can be linked to a MAP file to let you see where they have occurred.
A Continuous View enables you to see each memory operation in the order they occured. This is complete with user defined markers to help you break them up. This view makes it easy to track where trouble spots may arise during your application.
Goldfish even allows you to filter and group allocations to enable you to see totals and counts.
Goldfish will process your applications MAP file and break down the memory used by your code in the form of global and static variables. This is memory that is consumed and often easily missed during the course of development.
Find and Seek
Goldfish will compare memory and filter the allocations unique to each snapshot. You won’t need a spread sheet again to track these errors.
Elephant is a high performance, best-fit memory allocator specially designed for today’s multi-core processors. Compared to some of the alternatives Elephant’s design really comes into its own, whether you are only targeting a single threaded program or taking full advantage of multiple threads, Elephant can really be seen to make a difference to your games performance.
Elephant also performs as well or better than our competitors with regards to fragmentation.
We have compared two popular allocators to give you an idea of how Elephant could improve your performance. Click on the image to the left to see some performance results.
10 Second Memory
Elephant comes with Goldfish, a tool which aids in exploring and debugging memory in your game. Goldfish allows you to view every single allocation and possible fragment in your application to help you track the errors that are harder to find from within your main development program. You can compare memory dumps to track down any memory leaks and track memory operations over a time period to find out where your high water marks occur.
Goldfish can also dissect your application to track the memory you didn’t even know you had lost with global and static variable and monitor code size.
Elephant allows total customization of each memory heap you create. If you want one heap to only allow 64k alignment in 64k blocks it will do that while allowing a different form elsewhere. Do you want that heap to only allow allocations during load time? Well you can tell Elephant to do that as well. Perhaps you require memory in a certain area to be write combined? Elephant can do that too.
Tracking bugs in memory can be hard and time consuming. Elephant features various methods to combat memory leaks and buffer overruns without any complex external procedures. Various levels of tracking can be employed which even be run in real time, often without any noticeable performance penalties. This ensures the errors are caught as they happen, not the night before Master.