nbertoa

GDNet+ Basic
  • Content count

    353
  • Joined

  • Last visited

Community Reputation

1022 Excellent

About nbertoa

  • Rank
    Member

Personal Information

Social

  • Twitter
    nbertoa
  • Github
    nbertoa

Recent Profile Visitors

7571 profile views
  1. DX12 Road to Anti-Aliasing in BRE

    Update: Article #2 about Aliasing and Anti-Aliasing
  2. I want to implement anti-aliasing in BRE, but first, I want to explore what it is, how it is caused, and what are the techniques to mitigate this effect. That is why I am going to write a series of articles talking about rasterization, aliasing, anti-aliasing, and how I am going to implement it in BRE. Article #1: Rasterization Article #2: Aliasing and Anti-Aliasing All the suggestions and improvements are very welcome! I will update this posts with new articles
  3. In my opinion, you should first define exactly what you want. After that, we can help recommending frameworks, engines, languages, etc.
  4. 3D Lighting Series

    I just added a new article Lighting Series Part 5 - Photometry
  5. 3D Lighting Series

    I just added a new article Lighting Series Part 4 - Irradiance and Radiant Intensity
  6. 3D Lighting Series

    I just added a new article Lighting Series Part 3 - Radiance
  7. 3D Lighting Series

    I just added a new article Lighting Series Part 2 - Radiant Energy and Radiant Power
  8. 3D Lighting Series

    Hi, _Silence_ First of all, thanks for all your suggestions. I totally agree with you. To avoid a very long post, I did not include radiometric units. I knew this was going to be an important omission, so I commented about this situation at the beginning and at the end of the article (and in Lighting Series main post). I plan to include photometry-radiometry comparison in the next post too. Thanks again!
  9. Hi, community. I am writing a series of articles about Lighting related with real-time computer graphics. The purpose is to get information from a lot of great resources like computer graphics books, blogs, and forums, and try to explain them as easy and clear as I can. I am going to update the list periodically. Lighting Series The first post in the list is the following Lighting Series Part 1 - Light and Radiometry Update (2017.07.05) Lighting Series Part 2 - Radiant Energy and Radiant Power Update (2017.07.16) Lighting Series Part 3 - Radiance Update (2017.07.25) Lighting Series Part 4 - Irradiance and Radiant Intensity Update (2017.08.02) Lighting Series Part 5 - Photometry All suggestions for improvements, corrections, and new topics, are very welcome because in this way I am going to learn a lot and, and why not, maybe this helps anybody with the same doubts than me. Hope you find this useful!
  10. Create model using DirectX11

    Hi, YixunLui. To do that you can load a 3D model using a library like Assimp or you could have your own geometry generator in the application. Here, you can see an example of some methods to generate some shapes like spheres, cylinders, cubes, etc.
  11. Loading a b3d model?

    Assimp can be used to load it. Then, if you want to use DirectX, you need to decide which version to use. If, for example, you decide to use DirectX11, then you can learn from this book or from this webpage.
  12. Loading a b3d model?

    Hi, Cyndanera. Open Asset Import Library (Assimp) is used to import various 3D model formats. Based on this link, b3d format is supported
  13. 3D Billboarding between two points

    If you send a line primitive, then you can expand it into a segment in the geometry shader. I have some geometry shader code to do that. #version 330 compatibility // 2 points are expanded into a quad (2 triangles = 4 vertices) layout(lines) in; layout(triangle_strip, max_vertices = 4) out; in VertexShaderOutput { vec4 positionViewSpace; vec4 color; } vertexShaderOutput[]; uniform mat4 projectionMatrix; uniform float lineWidth; out GeometryShaderOutput { vec4 color; } geometryShaderOutput; void main() { // We compute the side vector. it is used to know in what direction we need to translate quad vertices for this line. vec3 sourceToDestVectorViewSpace = normalize(vertexShaderOutput[1].positionViewSpace - vertexShaderOutput[0].positionViewSpace).xyz; vec3 sourceToCameraVectorViewSpace = normalize(-1.0f * vertexShaderOutput[0].positionViewSpace.xyz); vec4 sideVectorViewSpace = lineWidth * 0.5f * vec4(normalize(cross(sourceToDestVectorViewSpace, sourceToCameraVectorViewSpace)), 0.0f); // Output line quad gl_Position = projectionMatrix * (vertexShaderOutput[1].positionViewSpace + sideVectorViewSpace); geometryShaderOutput.color = vertexShaderOutput[1].color; EmitVertex(); gl_Position = projectionMatrix * (vertexShaderOutput[1].positionViewSpace - sideVectorViewSpace); geometryShaderOutput.color = vertexShaderOutput[1].color; EmitVertex(); gl_Position = projectionMatrix * (vertexShaderOutput[0].positionViewSpace + sideVectorViewSpace); geometryShaderOutput.color = vertexShaderOutput[0].color; EmitVertex(); gl_Position = projectionMatrix * (vertexShaderOutput[0].positionViewSpace - sideVectorViewSpace); geometryShaderOutput.color = vertexShaderOutput[0].color; EmitVertex(); } Hope this helps!
  14. Good explanation about rotation matrices, and its construction. https://www.fastgraph.com/makegames/3drotation/ https://www.youtube.com/watch?v=RqZH-7hlI48 If you are using DirectX, you could use DirectXMath library that has several methods to apply operations on matrices. https://msdn.microsoft.com/en-us/library/windows/desktop/ee415594(v=vs.85).aspx If you want to read a book, I recommend 3D Math Primer 2nd Edition. It has geometric and mathematic explanation about many topics, in particular, rotation matrices. https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=sr_1_1?ie=UTF8&qid=1498480799&sr=8-1&keywords=3d+math+primer
  15. Thanks for the suggestions! I will try to understand the basic algorithm and then continue with HiZ Screen Space Cone Traced Reflections