Forums » Users » Kirgman
Select date in calendarSelect date in calendar

Pages: Prev. 1 ... 8 9 10 11 12 13 14 15 16 17 18 ... 22 Next
Shaderball scene for Max
 
Administrator  Posts: 452
Jun 22, 2017 06:31
For experiments
Centileo lights name in viewport
 
Administrator  Posts: 452
Jun 20, 2017 05:44
I agree about this. Will look how to make it
CentiLeo for 3ds Max 0.492 available (improved shadow catcher and many fixes)
 
Administrator  Posts: 452
Jun 19, 2017 20:07
Hello everyone!

This is the update CentiLeo 0.492 for 3ds Max 2014-2017! Shadow catcher is improved. Some more AOVs and light visibility properties are added. Important fixes for proxy files, hidden object accounting and problems with very high res bitmaps.

Download here: http://centileo.com/forum/forum13/118-download-link-centileo-for-3ds-max-v0492-alpha

Change Log: cntlc4d 0.492 alpha (2017 June 19)

[core] Improved Shadow Catcher and fixed relevant direct shadow bugs. Now you can control the strength of shadow for each light source or HDR environment map without affecting/overburning the other layers and other (non-shadow-catcher) objects. E.g. you can setup a separate environment map for shadow catcher. Since now to enable Shadow Catcher you should enable the checkbox in material settings (it will work as diffuse component, you can also add custom reflections for shadow catcher material, secondary GI is also rendered on shadow catcher).
[core] Sampling high-contrast HDR environment maps is improved 20% (less noise).
[core] Fixed issue with quite large overall brightness difference when render with or without portals
[core] Fixed Alpha-channel AOV
[core] Added Translucency, SSS AOVs
[core] Added Static Noise pattern option. It is used to get either static noise pattern when rendering animation or dynamic (when unchecked) to be used in 3rd party post denoisers.
[core] Fixed wrong blur (artifact) with bucket borders for very high-res bitmaps.
[core] Fixed IPR scene parser slowdown (when user moves objects interactively) in case of many GPUs.
[core] Fixed problem with incomplete shadow length in some IPR scenarios.
[core] Fixed problem with incomplete shadow length in some IPR scenarios.
[core] Improved IPR render performance in case of multi-GPU where display GPU also participates.
[cntlmax] Fixed Proxy CentiLeo object exporting to files and replacing for original objects and now it also understands native 3ds Max instancing.
[cntlmax] Fixed handling of hidden objects in 3ds Max scene for IPR.
[cntlmax] Fixed bug with changing CPU texture cache size.
[cntlmax] Added Target on/off for CentiLeo Light (former CentiLeo Uber Light object).
[cntlmax] Added more light visibility parameters per layer with arbitrary value range.

Known issues to be solved

- If you have several GPUs in computer it’s not recommended to assign the display-GPU for rendering. Sometimes is causes strange behavior. Currently we are trying to fix it.
- Displacement mapping feature is deactivated due to large code changes overall. This feature will be recovered within the next few short CentiLeo updates.
- May not initialize if AMD GPU is in your computer together with NVIDIA GPU.
- Very limited scene converter tool from other renderers (only diffuse property and textures from Standard material and Vray material)
- UVW mapping change of parameters may not be accounted by IPR scene auto update mode. To be solved.
- May not support non-latin texture paths.
- Need to finish implementing integration with ForestPack/RailClone/MultiScatter

Make you test and please give a feedback to make it even better!

For next update we plan to make RandomShader, RandomBitmap and interactive responce for 3rd party scatter plugins.

Kirgman
How do I do Caustics on Glass?
 
Administrator  Posts: 452
Jun 15, 2017 09:51
The price will be similar to popular GPU renderers but not higher. We still need to make a lot of things in alpha stage like mesh lights, motion blur, more shaders, aovs, better converters, nice gallery and video tutorials and etc.
How do I do Caustics on Glass?
 
Administrator  Posts: 452
Jun 15, 2017 05:26
Quote
Daniel Westlund wrote:
As the title say, I Cant find a way to create caustics. Is this coming in a later build?

//Daniel
Hi Daniel, welcome here!
Caustics are not yet supported. They are switched off to get rid of fireflies from general renderings. There will be a separate and nice solution for caustics in one of the future releases (but not very soon).
CentiLeo for Cinema 4D 0.491 available (improved shadow catcher and bug fixes)
 
Administrator  Posts: 452
Jun 12, 2017 21:10
Updated to 0.491 with fixing several really bad bugs like for very high-res bitmaps and broken noise aware rendering.

And it has super cool shadow catcher!!! :evil:
CentiLeo for 3ds Max 0.483 available (multi-GPU and efficiency improvement)
 
Administrator  Posts: 452
May 29, 2017 13:23
Quote
Ali Kavyani wrote:
hope this help

https://www.dropbox.com/s/a35bsbp66vgcoh8/UI_bug.zip?dl=0
Ali, was this thing about menu saving working in CentiLeo 0.47 or earlier versions?
Roadmap for CentiLeo 0.55-0.61
 
Administrator  Posts: 452
May 28, 2017 15:10
Roadmap update for 0.55-0.61 releases (approximatelly):

1) Displacement Mapping.

2) Mesh Lights.

3) Shaders/textures: more types of procedural noise, curve map, gradient, procedural UV mappings.

4) Fix some problems for scenes where CentiLeo is not so fast.

5) Node based visual editor for materials and shaders for CentiLeo in Cinema 4D.

6) More post-production settings and higher quality tonemapping.

7) Documentation update.

8) ForestPack, RailClone и MultiScatter for 3ds Max. Want to make it working well with IPR.

All these things may stretch for 7 releases 0.55-0.61. They are very important since they can influence to the rendering core engineering (I mean #1-4).
After that there will be a run on other easy-to-do features.
Edited: Kirgman - Dec 25, 2017 03:43 (Updated roadmap for 0.55-0.61)
CentiLeo for 3ds Max 0.483 available (multi-GPU and efficiency improvement)
 
Administrator  Posts: 452
May 28, 2017 11:50
Thanks, it's clear about a bug. Will try to fix it
CentiLeo for 3ds Max 0.483 available (multi-GPU and efficiency improvement)
 
Administrator  Posts: 452
May 28, 2017 06:44
Quote
Ali Kavyani wrote:
Hi,
after installing centileo changing on UI like toolbar and menus will reset after reopen 3dsmax.
Hi Ali,
Please can you clarify what menus or toolbar do reset? We actually save/recover the open/close state of material rollouts in 3ds Max scene.
CentiLeo for Cinema 4D 0.491 available (improved shadow catcher and bug fixes)
 
Administrator  Posts: 452
May 23, 2017 11:36
Hi everyone,

CentiLeo 0.49 for Cinema 4D R16-R18 is ready! It has improved shadow catcher with very nice controls which can easilly change the strength of the shadow per light on shadow catcher materials. Few other things are also improved.
IPR reaction become more clever and doesn't reset when not needed! Hope there are no bugs anymore like Rodrigo found for 0.48X

We have started transiting for tighter intergration with C4D. We are currently working on Alpha-channel for Material that will allow to blend several materials simply adding them to the Tag line. The part of solution is here (not yet visible for user, but hope it doesn't cause the bugs). Hope that in 0.50 we will finilze the alpha-channel for material.

Download here: http://centileo.com/forum/messages/forum18/message592/114-download-link-centileo-for-cinema-4d-v0490...

Change Log: cntlc4d 0.490 alpha (2017 May 23)

[core] Improved Shadow Catcher and fixed relevant direct shadow bugs. Now you can control the strength of shadow for each light source or HDR environment map using the dedicated multiplier parameter without affecting/overburning the other layers and other (non-shadow-catcher) objects. Since now to enable Shadow Catcher you should enable the checkbox in material settings (it will work as diffuse component, you can also add custom reflections for shadow catcher material, secondary GI is also rendered on shadow catcher).
[core] Sampling high-contrast HDR environment maps is improved 20% (less noise).
[core] Fixed issue with quite large overall brightness difference when render with or without portals
[core] Fixed Alpha-channel AOV
[core] Added Translucency, SSS AOVs
[C4D plugin] Improved IPR reaction for changing objects, camera and ALL parameters. It updates WHILE are you doing the changes (not AFTER you did changes like before). This comes true after fixing bugs from 0.48.
[C4D plugin] Fixed bug with right-to-left material tag ordering for procedural (non-polygon) objects.
[C4D plugin] Added white-balance control for each light pass post-process changing (see Render Settings -> AOV tab).

Change Log: cntlc4d 0.491 alpha (2017 June 12)

[core] Added Static Noise pattern option. It is used to get either static noise pattern when rendering animation or dynamic (when unchecked) to be used in 3rd party post denoisers.
[core] Fixed wrong blur (artifact) with bucket borders for very high-res bitmaps – was fixing it for long time.
[core] Fixed broken (in 0.490) noise-aware rendering.
[core] Fixed IPR scene parser slowdown (when user moves objects interactively) in case of many GPUs.
[core] Fixed problem with incomplete shadow length in some IPR scenarios.
[C4D plugin] Fixed wrong geometry parsing for deformed C4D Instance Object.
[C4D plugin] From now on in order to save renderer memory for same geometry objects you should use C4D Instance Object with “Render Instance” flag turned ON. In previous versions to get instancing memory saving it was not needed to switch this flag on.
[C4D plugin] Fixed wrong handling of object on/off visibility
[C4D plugin] Fixed IPR window freeze when C4D window is switched to Bodypaint or any other layout.

Please test it and give us feedback to discover further improvements!

Best regards,
Kirgman
Edited: Kirgman - Jun 12, 2017 21:11 (Update to 0.491 with fixes)
CentiLeo for 3ds Max 0.483 available (multi-GPU and efficiency improvement)
 
Administrator  Posts: 452
May 18, 2017 11:07
So the previous like 0.46-0.47 worked fine, right? Ok, it seems because of our hungry renderer for RAM. It is a bug in 0.48 that grabbed fixed 4GB for textures in Max, then 1GB for other CentiLeo needs and 1GB is grabbed by Max itself. After that it crashed because other things also grab memory. We are finishing 0.49 version with new shadow catcher and there will be a fix that will lower the initial grabbing of that 4GB. Will make it around 1.5 or 2GB.

But anyway the new recomendation is to have at least 12GB of RAM and 3GB of GPU mem for robust work. Why? All that out-of-core things require some minimum amout of memory needed for special data storage that allow out-of-core things to work. Starting from certain sizes of memory it works robust, e.g. 4GB GPU and 16GB RAM :))
CentiLeo for 3ds Max 0.483 available (multi-GPU and efficiency improvement)
 
Administrator  Posts: 452
May 18, 2017 07:49
Quote
eric morlic wrote:
great update but it crash when rendering for all scene made under centileo.
Does it always crash or only when when you start render a scene built with previous version of centileo?
Std question: what driver version, GPU (maybe several) and RAM size do you have? At what place does it crash?
CentiLeo for Cinema 4D 0.483 available (multi-GPU and efficiency improvement), test description message
 
Administrator  Posts: 452
May 11, 2017 15:39
Quote
Rodrigo Bitencourt Rodrigues wrote:
its possible implement a better feedback for sliders like color sliders?, now the ipr only update when you release the mouse button... will be nice if ipr update it in realtime like Octane and other render engines.
Rodrigo, for that problem in 0.482 with IPR freeze and some crashes we have currently payed with this less convenient IPR behavior (changes become accounted when mouse click is UP as you have noted). I don't like it but it's more stable now. The reason is multi-threading in Cinema. Searching for several days how to workaround this and make it reactive at least for camera, materials and post settings.
CentiLeo for Cinema 4D 0.483 available (multi-GPU and efficiency improvement), test description message
 
Administrator  Posts: 452
May 11, 2017 15:35
Quote
Konstantinos Despotis wrote:
When I start the ipr window there is some kind of lag, C4D becomes unresponsive for a couple of seconds.
This is normal currently. It waits for 7 GPUs to initialize the state and allocate 4GB of memory in RAM. It's good you note about it since there is a chance to move this GPU initialization to the background thread and make UI responsive. However, if the scene is heavy then it's needed to load it from out of the main Cinema thread that's why it can freeze Cinema for some time to finish the task. This is inevitable.
Quote
Cubic mapping does not work, it is the most basic mapping I think it should work to speed things up.

Quote
Rodrigo Bitencourt Rodrigues wrote:
but material tag order still wrong.
the most at right material tag will be always the top material on the render over the other tags.
Quote
Request feature: a channel for material alpha(Std Material) it will allow us to use a material stack like we have in Cinema 4D

Quote
Evgeniy wrote:
In the VK group I wrote a big list of small things, that need to be fixed in c4d, and Kirgman promised to fix all in nearest releases.
These things are related with proper Material and selection Tags parsing and implementing the Alpha channel for CentiLeo material. I think we are ready now to implement it correctly in CentiLeo and there are ideas how to do it properly. MaterialTag also has few simple procedural mapping and UVW mapping and tilling options. The mappings will be inherited by all cntlBitmaps or cntlNoise in default case. So do tiling options. But in every cntlBitmap you will be able to change default mapping channel to some other mapping channel just for this texture and not for others. I think it will support Cinema behavior with some nice extension on top of it.
Hope to do this feature in 0.49 or maybe 0.50. Already working on 0.49 btw.
Quote
Konstantinos Despotis wrote:
If I change the camera during render the ipr does not update, I have to close the ipr and restart it.
Does this problem still happen?
Quote
the tone mapping options are very important (at the moment 2.2 gamma seems really dark for some reason and I cannot go past 4) to overall host app support,
By default there is contrast 0.5 for shadows and 0.3 for highlights. They can make the look darker. If both are zero, exposure = 0, highlights white = 1 then it is raw untonemapped image. Also the roughness parameter of Diffuse channel can make it darker. And there are thoughts that we should calibrate lighting emission values vs similar parameters in other engines to make things more usual for transition. Will try to do that. Also we plan to add several more nice tonemapping curves for the next version very soon wherein it will be possible to combine several tonemappers with sliders. Hope this will nicer.
Quote
( hair, instances, special shaders like mograph, vertex maps etc..) First, for me, it has to match the features of the other players,(sky models, haze, volumes, particle support, instancing and color variations, node material systems, fast sss and intuitive materials and interface, compositing channels and more.
Instancing is supported, just use native Cinema Instance object where the original obect is referenced. And it will be accounted in CentiLeo internally saving the memory on polygons and etc. In IPR there are stats of unique polygons of scene and instanced (that reference the unique). All the rest things are in plan step by step. E.g. more compositing channels will be available quite soon: SSS, Translucent, and maybe Shadow Catcher AOV channels and several more basic AOVs (like depth, UV, textures, lighting).
Color variation will be done using our future shader like RandomShader, MultiTexture, RandomBitmap (connecting folder of images) and so on and so on.
Agree that SSS must be improved and accelerated. There is a chance for improvement. It's so cool effect.
Things like hair and volume are huge for development and are planned to start in several months because right now we still need to do several more basic things.
Quote
it has to play well with third party plugins that are widely used, like X-particles, Carbon scatter, Forest pack( for max) etc.
It's planned, probably before hair & volume support. We have a method to make very powerfull support of really MANY instances or scatters and fast population in the scene. Hope it will work out.
Quote
Lastly, a good converter from the other main players would go a long way, like convert a scene from Octane/vray/corona/physical render etc to Centileo.
This is true and not easy thing to do right now because our own shader arsenal is still not finished. First we must make the structure and feature set, values ranges and defaults more stable. And then start making converters. Before that if we make a converter then it can be changed again and again.
Quote
And a good portfolio of good architectural/product images on your website would attract people, but they have to be good, better to not have any than have some mediocre ones.
This is what we need from community. After we will do few more basic features (at least by some 0.55 version) there is a hope to invite some active 3D people for help with that gallery, with legal downloadable benchmark scene and etc.


Plan for CentiLeo 0.49 - 0.50:
1) Shadow catcher which draws the direct shadows.
2) GGX reflection (think to do it for Reflection2 and leave Reflection1 as Beckman).
3) More Tonemapping options.
4) TextureTag support (Alpha channel, correct order of materials, procedural mappings, etc.).
5) Mesh Lights (emission channel for material or separate emission material).
6) Improve some IPR performance (there are still few stupid places there).
7) Make few very easy things accumulated from user wishlists since few months ago.

Hope these things can be done. If some problem happen with particular feature then it will be postponed for next releases.
After that we will narrate shaders/textures, procedural noise methods and motion blur. And I think that after that we should do node editor for shaders/materials at least in a very basic way. It should become more convenient with it unlike this menu system.
CentiLeo for 3ds Max 0.483 available (multi-GPU and efficiency improvement)
 
Administrator  Posts: 452
May 10, 2017 22:27
Hello everyone!

Also publishing CentiLeo 0.483 for 3ds Max 2014-2017 like for C4D week ago!

Sorry, it took very long unexpected time, but it required to do so many little things in a complex system and many times the ongoing release was postponed. But now it's ready!
CentiLeo 0.48 release is mostly about multi-GPU and other efficiency improvements for rendering and memory management. Graphics feature improvements (more shaders, AOVs, improved shadow catcher, motion blur and mesh lights) are expected in the nearest alpha releases which will come out few times per month.

Download here: http://centileo.com/forum/forum13/112-download-link-centileo-for-3ds-max-v0483-alpha

Shaderball scene: http://centileo.com/bitrix/components/bitrix/forum.interface/show_file.php?fid=322&action=download

Light lister script by Ali Kavyani: http://centileo.com/forum/forum22/99-3dsmax-lightlister-script


Change Log: cntlmax 0.483 alpha (2017 May 10)

[core] Multi-GPU support (maximum 16) with adaptive render data and cache arrangement on GPUs with different memory size. It scales 1.9-2.75x for 2-3x GPUs
[core] Up to 50% improved GI sampling for scenes with harder lighting. Sampling becomes smarter at the cost of more complex computations. For scenes with more or less interesting lighting (interiors, exteriors with several CG lights and/or complex HDRs) it gives up to 50% faster rendering. But for scenes with simple lighting (e.g. outdoor with single area light or simple HDR) where new smart sampling is too smart the rendering is 15-25% slower due to more complex computations compared CentiLeo 0.47.
[core] Solved render initialization problem that decreased render speed in CentiLeo 0.47 by 2x until user manually plays with cache sizes. This solution converts to 2x faster render for production mode and for those who didn’t bother with cache size manipulation.
[core] 2.5x faster scene parsing for complex geometry (when render data is initialized and recompiled in IPR mode).
[core] A lot more fluent IPR experience when camera or post-process settings or other scene data are changed. 3D app viewport doesn’t lag as before. IPR responses real-time for simple data changes (like camera motion, post-effects, object motion or material changes) while user continues moving the UI slider params.
[core] Around 40% less memory needed for geometry storage. Now we pack 25M unique non-instanced triangles (with 1 UV channel, normal and tangent vectors) in 1GB. Wider range of highpoly scenes become less out-of-cory.
[core] 30% faster rendering for scenes with out-of-core geometry (and this accel adds on top of mentioned geometry memory savings).
[core] Up to 4 UV channels supported for each geometry mesh (selectable in mapping slots of shaders).
[core] Material editor preview: much faster and nicer preview render.
[core] Each GPU is initialized with as much memory as needed by scene (unlike taking all free memory even for trivial scenes in CentiLeo 0.47).
[core] Render stop criterion is now driven by min/max number of image iterations and also noise level. If the pixel gets at least min iterations and the noise level matches the user defined noise level then the render will not revisit this pixel anymore. Noise detection becomes more conservative and robust now.
[core] Added roughness parameter for Diffuse channel of material (it also hides shadow terminator artifacts on low-poly objects if any).
[cntlmax] Slight reorganization of Material editor GUI (all SSS are placed in one tab, Translucency is also placed in a separate tab).

Known issues to be solved soon

- If you have several GPUs in computer it’s not recommended to assign the display-GPU for rendering. Sometimes is causes strange behavior. Currently we are trying to fix it.
- Displacement mapping feature is deactivated due to large code changes overall. This feature will be recovered within the next few short CentiLeo updates.
- May not initialize if AMD GPU is in your computer together with NVIDIA GPU.
- Very limited scene converter tool from other renderers (only diffuse property and textures from Standard material and Vray material)
- UVW mapping change of parameters may not be accounted by IPR scene auto update mode. To be solved.
- May not support non-latin texture paths.
- Need to finish implementing integration with ForestPack/RailClone/MultiScatter

Enjoy rendering with CentiLeo and share your opinion!

Kirgman
CentiLeo for Cinema 4D 0.483 available (multi-GPU and efficiency improvement), test description message
 
Administrator  Posts: 452
May 10, 2017 22:15
Quote
Rodrigo Bitencourt Rodrigues wrote:
Feedback: 0.482 still freezing in the same case of materials.
nvidia driver 382.05
nvidia gtx 970
nvidia gtx 970

try change the order of materials tags....it happens too.
+ 0.483 update that fix this bug and related bugs due to other random frezzes, crashes or wrong object parsing

Quote
Konstantinos Despotis wrote:
it's actually much faster than octane, the same scene above takes roughly 3 times the time to reach the same level of noise in octane even with adaptive sampling turned on, according to my tests
This is very cool to know! Thanks for the test. Regarding other things will reply tomorrow (today) after sleep :)
CentiLeo for Cinema 4D 0.483 available (multi-GPU and efficiency improvement), test description message
 
Administrator  Posts: 452
May 8, 2017 10:26
Quote
Aimar NL_21 wrote:
what happened to displacement maps not showing up anymore
Hi Aimar, they are temporarily switched off by developer. After many changed that were done by 0.48 version there were too many crash bugs and artifacts and that would take 1-2 weeks fix and serious improvements needed. So we have postponed recovering it. I hope to fix it by CentiLeo 0.51-0.53, new displacement solution will be a lot better.
CentiLeo for Cinema 4D 0.483 available (multi-GPU and efficiency improvement), test description message
 
Administrator  Posts: 452
May 8, 2017 10:10
This what I was afraid of. This bug with black marks is about shading normals. I have known about it when looked at normal AOVs. But it appear rarely in the same scene and same conditions. I have few thoughts how to find the exact reason for it but postpone a bit :)
For example the bug reported by Rodrigo had uncertain reasons and different behavior in the same conditions. Searched it for 2 days and fixed. Will update today together with update for 3ds Max.
Quote
Konstantinos Despotis wrote:
1min 30sec render here, only one window, fullhd.
How does it compare to Octane? :) You also should know that CentiLeo can be accelerated even more in some future.
CentiLeo for Cinema 4D 0.483 available (multi-GPU and efficiency improvement), test description message
 
Administrator  Posts: 452
May 5, 2017 08:17
Quote
Rodrigo Bitencourt Rodrigues wrote:
Feedback: 0.482 still freezing in the same case of materials.
nvidia driver 382.05
nvidia gtx 970
nvidia gtx 970

try change the order of materials tags....it happens too.
Hi Rodrigo! When tested yesterday it stopped happening. Today it's always reproduced after it was compiled for release. Continue searching for solution.

Quote
Konstantinos Despotis wrote:
In the image below I get this black area that I don't get with other render engines, it must be a bug.
Hi Konstantinos! Thanks for bugrep. Don't hesitate to demand more. I don't consider requests as negative. If valid thing is asked then it shoudl be done by us :)
As for the black artifact on the pillow - I have seen it before in the engine, but then it has gone by itself before I was able to fix it.
Please, can you send me the model of this pillow separatelly so I would operate on the problem more productively.

Physical Sky model as you describe is in our Todo list. We start improving our shaders and make other graphics features. And there will be handling of material tags list per object same as in native C4D renderers. Later will do node editor. C4D is very pleasant environment for programming, it's really like a pleasure.

Quote
Konstantinos Despotis wrote:
and easier materials properties..like what does the texture slot do? It does not take the texture, that should go in the color slot.. so what is it for? etc etc.. maybe better material options layering, I can come up with some examples if you like but check also the other renderers. I like that it is tidy and all options in one material though..
Do you mean that our material slots dont accept usual Cinema textures? :) They are currently not supported. Currently it can only accept own CentiLeo Bitmaps and other texture types that are available after clicking "Edit" button. Just very custom. Once we make our shader system powerfull enough we wll be able to add support for some C4D textures (at least CC4D Bitmap and some other important things). Still I am not sure about some C4D texture (especially procedural) because they may be closed source and require pre-evaluating them, backing them to images and mapping (Octane does this and it's not always convenien /efficient). Anyway, I hope that when we will have 25 own texture/shader node types that we start implementing now + visual node editor (even if it's own entirelly) it may force people to forget about native menus :) But anyway most basic native things must be supported.

Quote
Konstantinos Despotis wrote:
If I change the camera during render the ipr does not update, I have to close the ipr and restart it.
Does IPR run at the same time? Does the timer increase? Have you clicked "Camera Lock" button? Have you made some editing activity before this happens?
Pages: Prev. 1 ... 8 9 10 11 12 13 14 15 16 17 18 ... 22 Next