Giter VIP home page Giter VIP logo

irrlichtbaw's Introduction

Repository is Archived, Project has been moved and renamed to Nabla

irrlichtbaw's People

Contributors

devshgraphicsprogramming avatar crisspl avatar manhnt9 avatar anastaziuk avatar przemog1 avatar khomsidakhun avatar numberzero avatar dariusz1989 avatar achalpandeyy avatar

Stargazers

 avatar  avatar  avatar  avatar Omid Shahbazi avatar John_R_Kkk avatar Julio Castillo avatar  avatar  avatar k.h.lai avatar Vitaly Varyvdin avatar Alessandro Maclaine avatar Ananya Singhal avatar Sayooj J S avatar  avatar MartinZ avatar Takase avatar  avatar  avatar shanghai nyaa chan! avatar  avatar 方泓睿 avatar rodrigo figueroa avatar Jefferson Amstutz avatar Alexey Mak avatar  avatar Diego Ahumada avatar Robin Voetter avatar Johnny avatar leanfox avatar Damon Leven avatar Alexandre Gauthier avatar adrian avatar  avatar David Lin avatar Tuo Chen avatar Alain Galvan avatar sprhawk avatar  avatar  avatar  avatar  avatar Rafael Pasquay avatar  avatar Galli Davide Francesco Maria avatar Hendra Darwintha avatar Amelia Mesdag avatar yuphin avatar  avatar Future Infinity avatar Dmitry avatar João Carlos Becker avatar  avatar Jasper Drescher avatar Nebula Venus avatar Duc Pham Hong avatar Chanhaeng Lee avatar yihong wu avatar  avatar Kobi Cohen-Arazi avatar Mateusz Semegen avatar Lava Block avatar  avatar  avatar  avatar Ishmael Rufus avatar  avatar José Ignacio Amelivia Santiago avatar  avatar Vyacheslav S. avatar Le creepeur petitè avatar sashikknox avatar Huang Ying avatar Kevin Lu avatar dzmitry-lahoda avatar Michael Cheng avatar MrZoraman avatar Grzegorz Bednorz avatar  avatar  avatar D. M. avatar Alex Feinstein avatar Memorix101 avatar  avatar Stefan Dyulgerov avatar Francois Duret avatar  avatar Claudia Doppioslash avatar ugozapad avatar Nikolay Galko avatar Kvar Izunia avatar Atish Maganlal avatar Ju-Hyung Lee avatar Martin Zima avatar Albert Tavares de Almeida avatar  avatar  avatar  avatar  avatar Valentin Plotkin avatar

Watchers

Ishmael Rufus avatar Michael Cheng avatar  avatar  avatar Ridwan Abdul Hafidh avatar Mateusz Semegen avatar Amirali Mohayaee avatar  avatar  avatar  avatar  avatar Luciano Buglioni avatar  avatar Grzegorz Bednorz avatar

irrlichtbaw's Issues

AddInstance Crash

Hi, I have tried to test your IrrlichtBaw engine but there is a crash on the node->addInstance(mat); when I execute the sample 08.HardwareInstancing.
I work with Irrlicht for a few years and I want to make some landscape with trees and grass ans I think instancing is the right way.
Compiled under Visual Studio 2015 without problems.
Maybe you know where is the problem.
Thanks for your good work :)

Hardware instancing example does not work on nvidia/OpenGL4.5

hardwareinstancinginfo
hardwareinstance
The graphics are all strange, I have a new GPU now so I am on an nvidia Optimus with OpenGL 4.5. It also has strange transparency issues, some other examples share this as well. Perhaps it is just an issue with KDE, however this does not happen with other 3D engines.

Linux build system

What’s about using CMake as build system for Linux? (It actually works on other platforms, too.) It supports different compilers, automatic dependency management and makefile generation (or project file generation, if requested), and much more—virtually everything a build system needs. I have some experience with it, may convert CodeBlocks project to CMake easily; would you want such PR?

SDL2 support

Did you ever manage to get SDL2 support for IrrBaw?

Make getMesh() thread-safe

Issue #22 is a pre-requisite

Also requires:

  1. making MeshLoaders thread safe.
  2. #24 Rewriting the VAO (IMeshDataFormatDesc) system for multiple contexts

Make getTexture() thread-safe

Involves:

  1. Rework the Atomic Lock interface to be more irrlicht-ty
  2. Rewriting IReferenceCounted to include an Atomic Lock
  3. making the texture cache thread-safe

Spaces

  1. Tabs and spaces are intermixed. Easily fixed by sed; the only question is whether to replace single tab with four spaces or vice versa?
  2. Line endings are mixed; both \r\n and \n are used, sometimes even in single file. Again, easy to fix with sed. See #64

compile issue on suse.

In member function ‘float irr::core::vectorSIMDf::getLengthAsFloat() const’:
/usr/lib64/gcc/x86_64-suse-linux/5/include/pmmintrin.h:56:1: error: inlining failed in call to always_inline ‘__m128 _mm_hadd_ps(__m128, __m128)’: target specific option mismatch
_mm_hadd_ps (__m128 __X, __m128 __Y)

CFinalBoneHierarchy deduplication

Find identical objects and merge them, and redirect the ISkinnedMesh references to the objects.

This is needed so that different meshes can use the same armature for GPU skinned mesh instancing and compute shader Boning.

It practically paves the way towards using an animation middleware such as SmartBody or Euphoria.

Complete a Wiki with Tutorials, Tips&Hacks and Peculiar Engine Behaviour

Explain the tutorials more in depth.

Some general GPU Programming Tips and Tricks would be nice in the wiki too, such as:

  1. How to integrate with Silverlining
  2. How to integrate with CEGUI
  3. How to integrate with a Generic OpenGL 3.3 core+ middleware
  4. GPU Debugging tools HowTo (CodeXL, NSight, apitrace, etc.)

Troubleshooting and FAQ pages.

Create the irr::ext namespace and ship a default Autoexposure Tone Mapper with compute shader Bloom

This is the only exception to the rule of "We Don't Supply Rendering Techniques With The Engine" as there are the following reasons:

  1. One always needs a tonemapper with auto-exposure to display PBR scenes
  2. One can easily supply a tonemapping function to use their custom tone-mapper
  3. There's only one correct (fastest) way to implement Bloom (3 iterations of Compute Shader scanline box filters accelerated with shared memory)
  4. It will live in the ::ext:: namespace and not be initialized or used by default

This is in stark contrast to things like Order Independent Transparency, Global Illumination, Direct Lighting and Shadows where multiple techniques exist of which none is overall best.

Compilation error

Compiler : GCC 6.3
Is is not permitted to use dynamic_cast with the compiler flag -fno-rtti

Make a CPUMeshBuffer storage optimization function

A stub of this was going to be implemented in

scene::IGPUMesh* COpenGLDriver::createGPUMeshFromCPU(scene::ICPUMesh* mesh, const E_MESH_DESC_CONVERT_BEHAVIOUR& bufferOptions)

However such a function would be slow, so the above COpenGLDriver member function would need its const E_MESH_DESC_CONVERT_BEHAVIOUR& bufferOptions parameter removed, get moved into CNullDriver and have the function behave as if bufferOptions has the default value EMDCB_CLONE_AND_MIRROR_LAYOUT.

Instead a ICPUMeshBuffer to ICPUMeshBuffer optimization function should be implemented as a function of scene::IMeshManipulator

Such a function would:
A) Create a new Index Buffer
B) For Triangle Meshes, carry out Forsyth (post vertex shader cache) or for Triangle/Line Meshes, Early-Z Optimization (or both combined with some weighin factors) of the index list to change the intra-mesh order of rendering the triangles
C) Reduce all index values by the minimum index buffer value and compensate by incrementing the BaseVertex offset
D) If index buffer does not repeat any vertices then get rid of it entirely (by reordering vertices in the vertex buffer) -- meshes with no index buffer behave as if the index buffer was simply 0,1,2,3,4,5
E) If index buffer is necessary reduce the index buffer precision from 32bit to 16bit if possible (if the new max index is less than 65536)
F) Create a new buffer to hold all vertex data
G) Re-quantize the vertex data, using two options (with 4D offset and rescale factor or not) i.e.
G1) Pass1: for each vertex attribute and channel/component gather the minimum, second smallest, penultimate largest and maximum value
G2) Pass2: see if using any smaller and compatibile format (byte-wise smaller and having equal or same amount of channels) every vertex attribute value in every channel can be represented to an acceptable precision either by NewFmt(x)rescale+offset ~ X for the offset and rescale factor version, and NewFmt(x) ~ X without
H) Copy and possibly reorder (look at pt. D) all vertex attributes to become interleaved while adding minimal padding (remember that byte offsets in the buffer need to be aligned to the size of the type of the vertex attribute)
H2) We could re-order the attributes' offsets (but not ATTRN binding points) so that padding is reduced by putting all the double-typed attributes first followed by all attributes which are multiples of 32bits (typeSize
numComponents), 16bits, then 24bit and 8bits

get/set Attribute would have to be extented by a parameter to take not only the vertexIx but also the instanceIx and do correct handling of attributes with an attribute divisor.

Implement GCM Authentication on Encrypted Blobs and avoid redundant Hashing

To make sure that loading a blob with the incorrect password will not cause us to try and load garbage data, runAes128gcm needs to also perform GCM authentication.

Also, since GCM provides authentication, xxHash'ing of post encryption blob data is not necessary.
So if encryption is enabled, maybe the xxHash should be default set to 0 upon write and not even compared upon load in the validation function if blobheader specifies that the blob is compressed.

Transparency issues persist on Mesh Loaders and in hardware skinning example.

There seems to be a window transparency issue going on in multiple examples, as can be seen on these screenshots, combined with my other issue this is 3 different examples that all have this problem.
dwarfs
mesh loaders
As you can see in the dwarf's example the frame rates are rather low, with the discrete GPU I am now using, it should be very fast. Is there any other known issues with Irrlicht + Nvidia GPU's?

Implement OpenGL State Tracking

Need a per-thread (per-context) COpenGLStateManager and overrides for every GL function in COpenGLExtensionHandler which modifies global context state.

Platform support?

Which platforms has IrrlichtBAW worked on in production? (or in general?)

Any new updates?

Just wondering if there has been any ongoing development on this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.