Three.js Optimization - Best Practices and Techniques

Поделиться
HTML-код
  • Опубликовано: 31 июл 2024
  • Are you struggling to get your Three.js scenes running smoothly? Performance optimization can be a daunting task, but in this video guide, we'll break it down step-by-step. We'll start with an overview of the key factors that can impact performance, including draw calls, geometry complexity, and texture size. Then, we'll dive into specific techniques you can use to optimize your Three.js scenes, such as mesh merging, color palettes, ORM textures and more. Finally we will look at two websites and analyze what are the techniques they used to have a fast performant experience.
    Useful Resources
    Blender GLTF Node guide
    docs.blender.org/manual/en/la...
    R3F Performance Monitoring
    github.com/utsuboco/r3f-perf
    React Three Fiber Examples
    docs.pmnd.rs/react-three-fibe...
    Mesh Transmission Material
    codesandbox.io/s/hmgdjq
    The Unconventional Gallery - Ruinart
    unconventionalgallery.ruinart...
    Kode Club - Merci-Michel
    www.kodeclubs.com
    Volkswagen Virtual Studio - VisStudio
    www.vw.com.mx/app/virtual-stu...
    Timestamps
    00:00 Introduction
    00:56 Understanding what's heavy
    01:54 Performance tracking
    03:05 Draw calls
    05:34 Materials
    08:06 Textures
    10:37 Shadows
    11:44 Post processing
    12:28 Case study

Комментарии • 45

  • @Leosc1986
    @Leosc1986 Месяц назад +3

    What a great example of how well a video tutorial can be made! Good job!

  • @heagandev
    @heagandev Год назад +4

    Wow I learned a lot from this, and in a very digestible format as well. Thanks!

  • @andrewwoan
    @andrewwoan Год назад +4

    Incredible! Thanks so much. Looking forward to more! Super helpful stuff; optimization is always tough.

  • @vfxlord
    @vfxlord Год назад +4

    I learned a lot from watching the video , I will definitely come back to this video in the future when I need to improve performance

  • @gamingpig4997
    @gamingpig4997 Месяц назад

    Incredible video, this video will stay useful even 10 years from now.

  • @u_walk2251
    @u_walk2251 Год назад

    nice overview ! thank you so much....and keep bringing such quality stuff. just don't stop

    • @ValentinCoding
      @ValentinCoding  Год назад

      With this kind of comment how could I stop!! Thanks!

  • @Superla
    @Superla 2 месяца назад

    Such a good video about the process!

  • @adamjackson6606
    @adamjackson6606 Год назад +1

    Very useful video, thank you!

  • @shujaa
    @shujaa Год назад +2

    This is great and very informative

  • @vrmeup
    @vrmeup Год назад

    Thanks for an interesting and educational video.

  • @amirsohail963
    @amirsohail963 Год назад

    thank you
    we need more tutorial on optimization and technical parts and I have subscribed :)

  • @AndersonMancini
    @AndersonMancini Год назад +2

    Wow. So good content here. Congratulation. This will help a lot of people. 👏🏻👏🏻👏🏻👏🏻

    • @ValentinCoding
      @ValentinCoding  Год назад +2

      Thanks I really really appreciate the feedback ☺️

  • @nastykingkurl4080
    @nastykingkurl4080 9 месяцев назад

    Thank you so much! I was struggling to find out what makes my scene so slow, and it really was only the transmission. Which in the end i didnt even need, cause i solved it with transparent: true, & opacity. Went from 30fps back to 60fps

  • @Lalalandinseoul
    @Lalalandinseoul Год назад +3

    This is what i needed !

  • @kshitijroodkee8151
    @kshitijroodkee8151 Год назад +2

    Great video ! would love to see some optimisation tutorials also in a complete workflow ✨

  • @morejpeg
    @morejpeg Год назад +1

    Great tutorial, thank you!

  • @dinoscheidt
    @dinoscheidt Год назад +1

    Thank you very much for taking the time to make this video. As a software engineer currently dabbling in three.js. Regarding performance: There is always also chrome://tracing or about:tracing- a very potent profiler powering chrome lighthouse reports that can also break down webgl.

  • @repalash
    @repalash Год назад +1

    Awesome video! One thing to note, SSAO, SSR, Bloom other post-processing effects are not expensive when using a deffered/semi-deferred rendering pipeline similar to the car configurator

    • @edmondbounasr8727
      @edmondbounasr8727 Год назад

      whenever i turn on bloom , the fps drops and i loose performance !!

  • @vitaliyforij5205
    @vitaliyforij5205 10 месяцев назад

    Thanks for a video

  • @juanrolon1729
    @juanrolon1729 13 дней назад

    very useful

  • @codevlogs9100
    @codevlogs9100 Год назад

    A great information for a new 3D developer like me.

  • @iub.9893
    @iub.9893 Месяц назад

    Instantly susbcribed

  • @iub.9893
    @iub.9893 Месяц назад

    This was incredible thank you very much! What are your thoughts on different lights? Where do they fit in impacting performance relative to the other elements?

    • @ValentinCoding
      @ValentinCoding  Месяц назад

      Personally, I rarely use Three.js lighting because you can never achieve the same level of realism as baking lights in 3D software. That being said, I often add at least one ambient light to control the general tone of the scene and sometimes a directional light. As long as you use lights solely for lighting purposes (with shadows disabled), they aren't that costly.

  • @benedictlang7431
    @benedictlang7431 8 месяцев назад

    This is soooooo important to understand but has only 16.754 views

  • @aadarshgupta6800
    @aadarshgupta6800 Год назад +2

    need more videos pls !

  • @captainofthewhitetower
    @captainofthewhitetower 5 месяцев назад

    Is there a guide on how to make realistic environment and a building? Also another guide for implementing threejs to html. Like making widgets for html and using it for the model like scaling or filterin

  • @brianliang3010
    @brianliang3010 Месяц назад

    5:18 aren't vertices of a mesh that are outside of the view frustum removed from rendering pipeline, such that vertex shader can also benefit from it since less vertices are calculated with the shader?

    • @ValentinCoding
      @ValentinCoding  Месяц назад

      From what I have experienced, frustum culling works at the object level, not the vertex level.

  • @has.nguyen1753
    @has.nguyen1753 Год назад +1

    Could you please attach the node guide link at 6:48? Thank youuuuuuu

    • @ValentinCoding
      @ValentinCoding  Год назад +1

      I updated the description and added the link, thanks for the suggestion!

  • @LakiLOOP
    @LakiLOOP Год назад

    Is unconventionalgallery your work?

    • @ValentinCoding
      @ValentinCoding  Год назад +1

      No it is not! And I just realized I didn't cite the source for this reference. My bad, I updated the description!

    • @LakiLOOP
      @LakiLOOP Год назад

      ​@@ValentinCoding it's such a nice project. Do you maybe know how they did reflections on the floor?

    • @ValentinCoding
      @ValentinCoding  Год назад +1

      @@LakiLOOP Probably a custom shader like the meshReflectorMaterial from pmndrs/drei